From 95c526b23b11c3244839ac6f8c9949b50bb1798b Mon Sep 17 00:00:00 2001 From: Nicolas Jager <nicolas.jager@savoirfairelinux.com> Date: Thu, 20 Oct 2016 09:47:03 -0400 Subject: [PATCH] qrcode : add quick response code source : https://github.com/BlueDragon747/qrencode-win32 Change-Id: I0fbe4f37100afcfa761b0cef90e34b4198fccf0e Tuleap: #1233 --- Assets/qrCodeIcon.png | Bin 0 -> 291 bytes SmartPanel.xaml | 38 +- SmartPanel.xaml.cpp | 89 + SmartPanel.xaml.h | 2 + Styles.xaml | 11 + contrib/qrencode-win32/COPYING | 510 + contrib/qrencode-win32/ChangeLog | 1047 + contrib/qrencode-win32/Doxyfile | 1781 ++ contrib/qrencode-win32/Makefile.am | 39 + contrib/qrencode-win32/Makefile.in | 1183 ++ contrib/qrencode-win32/NEWS | 271 + contrib/qrencode-win32/README | 145 + contrib/qrencode-win32/TODO | 5 + contrib/qrencode-win32/acinclude.m4 | 0 contrib/qrencode-win32/aclocal.m4 | 11490 +++++++++++ contrib/qrencode-win32/autogen.sh | 31 + contrib/qrencode-win32/bitstream.c | 238 + contrib/qrencode-win32/bitstream.h | 38 + contrib/qrencode-win32/config.h.in | 94 + contrib/qrencode-win32/configure | 16430 ++++++++++++++++ contrib/qrencode-win32/configure.ac | 139 + contrib/qrencode-win32/libqrencode.pc.in | 11 + contrib/qrencode-win32/mask.c | 330 + contrib/qrencode-win32/mask.h | 37 + contrib/qrencode-win32/mmask.c | 177 + contrib/qrencode-win32/mmask.h | 34 + contrib/qrencode-win32/mqrspec.c | 280 + contrib/qrencode-win32/mqrspec.h | 157 + contrib/qrencode-win32/qrenc.c | 1191 ++ contrib/qrencode-win32/qrencode.1.in | 113 + contrib/qrencode-win32/qrencode.c | 932 + contrib/qrencode-win32/qrencode.h | 566 + contrib/qrencode-win32/qrencode.spec | 72 + contrib/qrencode-win32/qrencode.spec.in | 72 + contrib/qrencode-win32/qrencode_inner.h | 88 + contrib/qrencode-win32/qrinput.c | 1727 ++ contrib/qrencode-win32/qrinput.h | 123 + contrib/qrencode-win32/qrspec.c | 562 + contrib/qrencode-win32/qrspec.h | 181 + contrib/qrencode-win32/rscode.c | 327 + contrib/qrencode-win32/rscode.h | 41 + contrib/qrencode-win32/split.c | 326 + contrib/qrencode-win32/split.h | 47 + contrib/qrencode-win32/tests/Makefile.am | 72 + contrib/qrencode-win32/tests/Makefile.in | 858 + contrib/qrencode-win32/tests/common.h | 201 + .../tests/create_frame_pattern.c | 170 + .../tests/create_mqr_frame_pattern.c | 170 + contrib/qrencode-win32/tests/decoder.c | 1103 ++ contrib/qrencode-win32/tests/decoder.h | 49 + contrib/qrencode-win32/tests/frame | Bin 0 -> 477320 bytes contrib/qrencode-win32/tests/prof_qrencode.c | 74 + .../qrencode-win32/tests/pthread_qrencode.c | 107 + contrib/qrencode-win32/tests/test_all.sh | 12 + contrib/qrencode-win32/tests/test_bitstream.c | 221 + .../qrencode-win32/tests/test_estimatebit.c | 158 + contrib/qrencode-win32/tests/test_mask.c | 408 + contrib/qrencode-win32/tests/test_mmask.c | 152 + contrib/qrencode-win32/tests/test_monkey.c | 567 + contrib/qrencode-win32/tests/test_mqrspec.c | 178 + contrib/qrencode-win32/tests/test_qrencode.c | 968 + contrib/qrencode-win32/tests/test_qrinput.c | 1007 + contrib/qrencode-win32/tests/test_qrspec.c | 328 + contrib/qrencode-win32/tests/test_rs.c | 38 + contrib/qrencode-win32/tests/test_split.c | 550 + contrib/qrencode-win32/tests/view_qrcode.c | 524 + contrib/qrencode-win32/use/compile | 347 + contrib/qrencode-win32/use/config.guess | 1558 ++ contrib/qrencode-win32/use/config.rpath | 666 + contrib/qrencode-win32/use/config.sub | 1791 ++ contrib/qrencode-win32/use/depcomp | 791 + contrib/qrencode-win32/use/install-sh | 527 + contrib/qrencode-win32/use/ltmain.sh | 9661 +++++++++ contrib/qrencode-win32/use/missing | 215 + .../vc8/.build/Release-Dll/qrcodelib.dll | Bin 0 -> 42496 bytes .../vc8/.build/Release-Dll/qrcodelib.exp | Bin 0 -> 6854 bytes .../vc8/.build/Release-Dll/qrcodelib.iobj | Bin 0 -> 367989 bytes .../vc8/.build/Release-Dll/qrcodelib.ipdb | Bin 0 -> 87552 bytes .../vc8/.build/Release-Dll/qrcodelib.lib | Bin 0 -> 11736 bytes .../qrcodelib.tlog/CL.command.1.tlog | Bin 0 -> 11218 bytes .../Release-Dll/qrcodelib.tlog/CL.read.1.tlog | Bin 0 -> 62740 bytes .../qrcodelib.tlog/CL.write.1.tlog | Bin 0 -> 7592 bytes .../qrcodelib.tlog/link.command.1.tlog | Bin 0 -> 4444 bytes .../qrcodelib.tlog/link.read.1.tlog | Bin 0 -> 8034 bytes .../qrcodelib.tlog/link.write.1.tlog | Bin 0 -> 2980 bytes .../qrcodelib.tlog/qrcodelib.lastbuildstate | 2 + .../qrcodelib.tlog/qrcodelib.write.1u.tlog | Bin 0 -> 522 bytes contrib/qrencode-win32/vc8/qr.iss | 25 + contrib/qrencode-win32/vc8/qrcode.sln | 58 + contrib/qrencode-win32/vc8/qrcode/ReadMe.txt | 33 + contrib/qrencode-win32/vc8/qrcode/config.h | 17 + contrib/qrencode-win32/vc8/qrcode/getopt.c | 533 + contrib/qrencode-win32/vc8/qrcode/getopt.h | 107 + .../qrencode-win32/vc8/qrcode/png/libpng.lib | Bin 0 -> 347826 bytes .../vc8/qrcode/png/libpng15.dll | Bin 0 -> 143360 bytes .../vc8/qrcode/png/libpng15.lib | Bin 0 -> 50284 bytes .../vc8/qrcode/png/libpng15d.dll | Bin 0 -> 286720 bytes .../vc8/qrcode/png/libpng15d.lib | Bin 0 -> 50476 bytes .../qrencode-win32/vc8/qrcode/png/libpngd.lib | Bin 0 -> 967408 bytes contrib/qrencode-win32/vc8/qrcode/png/png.h | 2280 +++ .../qrencode-win32/vc8/qrcode/png/pngconf.h | 632 + .../vc8/qrcode/png/pnglibconf.h | 176 + .../qrencode-win32/vc8/qrcode/png/zlib.lib | Bin 0 -> 116344 bytes .../qrencode-win32/vc8/qrcode/png/zlib1.dll | Bin 0 -> 77824 bytes .../qrencode-win32/vc8/qrcode/png/zlib1.lib | Bin 0 -> 13214 bytes .../qrencode-win32/vc8/qrcode/png/zlib1d.dll | Bin 0 -> 159744 bytes .../qrencode-win32/vc8/qrcode/png/zlib1d.lib | Bin 0 -> 13298 bytes .../qrencode-win32/vc8/qrcode/png/zlibd.lib | Bin 0 -> 292360 bytes contrib/qrencode-win32/vc8/qrcode/qrcode.cpp | 12 + .../qrencode-win32/vc8/qrcode/qrcode.vcproj | 446 + .../qrencode-win32/vc8/qrcode/qrcode.vcxproj | 204 + .../vc8/qrcode/qrcode.vcxproj.filters | 39 + contrib/qrencode-win32/vc8/qrcode_vc11.sln | 56 + .../vc8/qrcodecon/qrcodecon.cpp | 156 + .../vc8/qrcodecon/qrcodecon.vcproj | 391 + .../vc8/qrcodecon/qrcodecon.vcxproj | 172 + .../vc8/qrcodecon/qrcodecon.vcxproj.filters | 33 + .../qrencode-win32/vc8/qrcodecon/stdafx.cpp | 8 + contrib/qrencode-win32/vc8/qrcodecon/stdafx.h | 12 + contrib/qrencode-win32/vc8/qrcodegui.png | Bin 0 -> 23860 bytes .../vc8/qrcodegui/FileUtils.cpp | 205 + .../qrencode-win32/vc8/qrcodegui/FileUtils.h | 39 + .../qrencode-win32/vc8/qrcodegui/ReadMe.txt | 55 + .../vc8/qrcodegui/qrcodegui.cpp | 317 + .../qrencode-win32/vc8/qrcodegui/qrcodegui.h | 47 + .../vc8/qrcodegui/qrcodegui.ico | Bin 0 -> 8854 bytes .../qrencode-win32/vc8/qrcodegui/qrcodegui.rc | 197 + .../vc8/qrcodegui/qrcodegui.vcproj | 427 + .../vc8/qrcodegui/qrcodegui.vcxproj | 191 + .../vc8/qrcodegui/qrcodegui.vcxproj.filters | 58 + .../qrencode-win32/vc8/qrcodegui/resource.h | 39 + .../qrencode-win32/vc8/qrcodegui/stdafx.cpp | 8 + contrib/qrencode-win32/vc8/qrcodegui/stdafx.h | 45 + contrib/qrencode-win32/vc8/qrcodelib/config.h | 17 + .../vc8/qrcodelib/qrcodelib.cpp | 30 + .../vc8/qrcodelib/qrcodelib.def | 42 + .../vc8/qrcodelib/qrcodelib.vcproj | 425 + .../vc8/qrcodelib/qrcodelib.vcxproj | 185 + .../vc8/qrcodelib/qrcodelib.vcxproj.filters | 98 + contrib/qrencode-win32/vc8/settings.ini | 10 + contrib/qrencode-win32/vc8/test.bat | 1 + ring-client-uwp.sln | 1268 +- ring-client-uwp.vcxproj | 7 +- ring-client-uwp.vcxproj.filters | 3 + 144 files changed, 73535 insertions(+), 17 deletions(-) create mode 100644 Assets/qrCodeIcon.png create mode 100644 contrib/qrencode-win32/COPYING create mode 100644 contrib/qrencode-win32/ChangeLog create mode 100644 contrib/qrencode-win32/Doxyfile create mode 100644 contrib/qrencode-win32/Makefile.am create mode 100644 contrib/qrencode-win32/Makefile.in create mode 100644 contrib/qrencode-win32/NEWS create mode 100644 contrib/qrencode-win32/README create mode 100644 contrib/qrencode-win32/TODO create mode 100644 contrib/qrencode-win32/acinclude.m4 create mode 100644 contrib/qrencode-win32/aclocal.m4 create mode 100644 contrib/qrencode-win32/autogen.sh create mode 100644 contrib/qrencode-win32/bitstream.c create mode 100644 contrib/qrencode-win32/bitstream.h create mode 100644 contrib/qrencode-win32/config.h.in create mode 100644 contrib/qrencode-win32/configure create mode 100644 contrib/qrencode-win32/configure.ac create mode 100644 contrib/qrencode-win32/libqrencode.pc.in create mode 100644 contrib/qrencode-win32/mask.c create mode 100644 contrib/qrencode-win32/mask.h create mode 100644 contrib/qrencode-win32/mmask.c create mode 100644 contrib/qrencode-win32/mmask.h create mode 100644 contrib/qrencode-win32/mqrspec.c create mode 100644 contrib/qrencode-win32/mqrspec.h create mode 100644 contrib/qrencode-win32/qrenc.c create mode 100644 contrib/qrencode-win32/qrencode.1.in create mode 100644 contrib/qrencode-win32/qrencode.c create mode 100644 contrib/qrencode-win32/qrencode.h create mode 100644 contrib/qrencode-win32/qrencode.spec create mode 100644 contrib/qrencode-win32/qrencode.spec.in create mode 100644 contrib/qrencode-win32/qrencode_inner.h create mode 100644 contrib/qrencode-win32/qrinput.c create mode 100644 contrib/qrencode-win32/qrinput.h create mode 100644 contrib/qrencode-win32/qrspec.c create mode 100644 contrib/qrencode-win32/qrspec.h create mode 100644 contrib/qrencode-win32/rscode.c create mode 100644 contrib/qrencode-win32/rscode.h create mode 100644 contrib/qrencode-win32/split.c create mode 100644 contrib/qrencode-win32/split.h create mode 100644 contrib/qrencode-win32/tests/Makefile.am create mode 100644 contrib/qrencode-win32/tests/Makefile.in create mode 100644 contrib/qrencode-win32/tests/common.h create mode 100644 contrib/qrencode-win32/tests/create_frame_pattern.c create mode 100644 contrib/qrencode-win32/tests/create_mqr_frame_pattern.c create mode 100644 contrib/qrencode-win32/tests/decoder.c create mode 100644 contrib/qrencode-win32/tests/decoder.h create mode 100644 contrib/qrencode-win32/tests/frame create mode 100644 contrib/qrencode-win32/tests/prof_qrencode.c create mode 100644 contrib/qrencode-win32/tests/pthread_qrencode.c create mode 100644 contrib/qrencode-win32/tests/test_all.sh create mode 100644 contrib/qrencode-win32/tests/test_bitstream.c create mode 100644 contrib/qrencode-win32/tests/test_estimatebit.c create mode 100644 contrib/qrencode-win32/tests/test_mask.c create mode 100644 contrib/qrencode-win32/tests/test_mmask.c create mode 100644 contrib/qrencode-win32/tests/test_monkey.c create mode 100644 contrib/qrencode-win32/tests/test_mqrspec.c create mode 100644 contrib/qrencode-win32/tests/test_qrencode.c create mode 100644 contrib/qrencode-win32/tests/test_qrinput.c create mode 100644 contrib/qrencode-win32/tests/test_qrspec.c create mode 100644 contrib/qrencode-win32/tests/test_rs.c create mode 100644 contrib/qrencode-win32/tests/test_split.c create mode 100644 contrib/qrencode-win32/tests/view_qrcode.c create mode 100644 contrib/qrencode-win32/use/compile create mode 100644 contrib/qrencode-win32/use/config.guess create mode 100644 contrib/qrencode-win32/use/config.rpath create mode 100644 contrib/qrencode-win32/use/config.sub create mode 100644 contrib/qrencode-win32/use/depcomp create mode 100644 contrib/qrencode-win32/use/install-sh create mode 100644 contrib/qrencode-win32/use/ltmain.sh create mode 100644 contrib/qrencode-win32/use/missing create mode 100644 contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.dll create mode 100644 contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.exp create mode 100644 contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.iobj create mode 100644 contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.ipdb create mode 100644 contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.lib create mode 100644 contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.command.1.tlog create mode 100644 contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.read.1.tlog create mode 100644 contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.write.1.tlog create mode 100644 contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.command.1.tlog create mode 100644 contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.read.1.tlog create mode 100644 contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.write.1.tlog create mode 100644 contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/qrcodelib.lastbuildstate create mode 100644 contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/qrcodelib.write.1u.tlog create mode 100644 contrib/qrencode-win32/vc8/qr.iss create mode 100644 contrib/qrencode-win32/vc8/qrcode.sln create mode 100644 contrib/qrencode-win32/vc8/qrcode/ReadMe.txt create mode 100644 contrib/qrencode-win32/vc8/qrcode/config.h create mode 100644 contrib/qrencode-win32/vc8/qrcode/getopt.c create mode 100644 contrib/qrencode-win32/vc8/qrcode/getopt.h create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/libpng.lib create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/libpng15.dll create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/libpng15.lib create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/libpng15d.dll create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/libpng15d.lib create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/libpngd.lib create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/png.h create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/pngconf.h create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/pnglibconf.h create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/zlib.lib create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/zlib1.dll create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/zlib1.lib create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/zlib1d.dll create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/zlib1d.lib create mode 100644 contrib/qrencode-win32/vc8/qrcode/png/zlibd.lib create mode 100644 contrib/qrencode-win32/vc8/qrcode/qrcode.cpp create mode 100644 contrib/qrencode-win32/vc8/qrcode/qrcode.vcproj create mode 100644 contrib/qrencode-win32/vc8/qrcode/qrcode.vcxproj create mode 100644 contrib/qrencode-win32/vc8/qrcode/qrcode.vcxproj.filters create mode 100644 contrib/qrencode-win32/vc8/qrcode_vc11.sln create mode 100644 contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.cpp create mode 100644 contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcproj create mode 100644 contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcxproj create mode 100644 contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcxproj.filters create mode 100644 contrib/qrencode-win32/vc8/qrcodecon/stdafx.cpp create mode 100644 contrib/qrencode-win32/vc8/qrcodecon/stdafx.h create mode 100644 contrib/qrencode-win32/vc8/qrcodegui.png create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/FileUtils.cpp create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/FileUtils.h create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/ReadMe.txt create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.cpp create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.h create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.ico create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.rc create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcproj create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcxproj create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcxproj.filters create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/resource.h create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/stdafx.cpp create mode 100644 contrib/qrencode-win32/vc8/qrcodegui/stdafx.h create mode 100644 contrib/qrencode-win32/vc8/qrcodelib/config.h create mode 100644 contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.cpp create mode 100644 contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.def create mode 100644 contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcproj create mode 100644 contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcxproj create mode 100644 contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcxproj.filters create mode 100644 contrib/qrencode-win32/vc8/settings.ini create mode 100644 contrib/qrencode-win32/vc8/test.bat diff --git a/Assets/qrCodeIcon.png b/Assets/qrCodeIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..da203cfa26e6ddf03a6720bfe97613af8e5d3ceb GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0y~yU=U|uU=ZVAV_;y=E@Nk9U|?WN@^*J&0E3^-yXzSk z7&r?&B8wRqxP?KOkzv*x2?hoR_7YEDSM~>7BD}mzGRjXY85kI3GeaUuobz*YQ}ar| z`kjkX6H8K46v{J8G8EiBeFIYTQrQ_87}`Bu978NlzYTHZJD|X^nLGZ&|Npc56U2SZ z9xoBF)rstPYV^<y37yQy@Z!G2yqRCb(kqO-<$TYWWbRSUJrZBT@lmIL>dVCzOK&#F z?B}-F-+0q8M`(40{Pd2(jbVz@=BS;0Kc{$A@$$l{ZmWGi^>MS7F7$h1RT>#LXDe5v i?(q$UmHaMcQWscVrup*iVLW6Ha;>pUXO@geCxy7hEU+ literal 0 HcmV?d00001 diff --git a/SmartPanel.xaml b/SmartPanel.xaml index 4fafbde..0ac9e7b 100644 --- a/SmartPanel.xaml +++ b/SmartPanel.xaml @@ -199,7 +199,6 @@ Foreground="Crimson" Margin="10,5,10,0" FontSize="14" - IsTextSelectionEnabled="True" TextTrimming="CharacterEllipsis" Text="{x:Bind ringID_}"/> </Grid> @@ -384,14 +383,16 @@ Checked="_accountsMenuButton__Checked" Unchecked="_accountsMenuButton__Unchecked" Style="{StaticResource ToggleButtonStyle1}"/> - <!-- _shareMenuButton_ collapsed on purpose --> + <!-- _shareMenuButton_ --> <ToggleButton x:Name="_shareMenuButton_" VerticalAlignment="Bottom" - Visibility="Collapsed" - Content="" Checked="_shareMenuButton__Checked" Unchecked="_shareMenuButton__Unchecked" - Style="{StaticResource ToggleButtonStyle1}"/> + Style="{StaticResource ToggleButtonStyle1}"> + <Image Source="Assets/qrCodeIcon.png" + Stretch="Uniform"/> + </ToggleButton> + <!-- _devicesMenuButton_ --> <ToggleButton x:Name="_devicesMenuButton_" VerticalAlignment="Bottom" Content="" @@ -514,20 +515,33 @@ <RowDefinition Height="auto"/> <RowDefinition Height="auto"/> </Grid.RowDefinitions> - <Image x:Name="_selectedAccountQrCode_" - Source="Assets\TESTS\qrcode.png" + <Grid Background="white" + Margin="10" + MaxHeight="150" + MaxWidth="140" + Padding="5"> + <Image x:Name="_selectedAccountQrCode_" Width="200" Margin="5" Grid.Row="0" + Stretch="None" Height="200"/> - <TextBlock Text="RingId:" + </Grid> + <TextBlock x:Name="_ringId_" + Padding="5" + Style="{StaticResource TextStyle4}" + Text="" Grid.Row="1" + IsTextSelectionEnabled="True" HorizontalAlignment="Center"/> - <TextBox Style="{StaticResource TextBoxStyle2}" - HorizontalAlignment="Center" - Text="c4fc649aed8b2497a5e98fd2d856222f07020044" - Grid.Row="2"/> </Grid> + <Button x:Name="_shareMenuDone_" + Grid.Row="1" + VerticalAlignment="Center" + HorizontalAlignment="Center" + Content="" + Click="_shareMenuDone__Click" + Style="{StaticResource ButtonStyle6}"/> </Grid> <!-- devices menu. --> <Grid x:Name="_devicesMenuGrid_" diff --git a/SmartPanel.xaml.cpp b/SmartPanel.xaml.cpp index 780f2c2..bee9236 100644 --- a/SmartPanel.xaml.cpp +++ b/SmartPanel.xaml.cpp @@ -19,6 +19,8 @@ #include "pch.h" #include <string> // move it #include "SmartPanel.xaml.h" +#include "qrencode.h" +#include <MemoryBuffer.h> // IMemoryBufferByteAccess using namespace Platform; @@ -34,6 +36,10 @@ using namespace Windows::UI::Xaml::Shapes; using namespace Windows::UI::Xaml::Media; using namespace Concurrency; using namespace Windows::Foundation; +using namespace Windows::Graphics::Imaging; +using namespace Windows::Foundation; +using namespace Concurrency; + using namespace Windows::ApplicationModel::Core; using namespace Windows::Storage; @@ -147,6 +153,10 @@ RingClientUWP::Views::SmartPanel::updatePageContent() _devicesMenuButton_->Visibility = (account->accountType_ == "RING") ? Windows::UI::Xaml::Visibility::Visible : Windows::UI::Xaml::Visibility::Collapsed; + + _shareMenuButton_->Visibility = (account->accountType_ == "RING") + ? Windows::UI::Xaml::Visibility::Visible + : Windows::UI::Xaml::Visibility::Collapsed; } void RingClientUWP::Views::SmartPanel::_accountsMenuButton__Checked(Object^ sender, RoutedEventArgs^ e) @@ -207,6 +217,8 @@ void RingClientUWP::Views::SmartPanel::_shareMenuButton__Checked(Platform::Objec _addingDeviceGrid_->Visibility = Windows::UI::Xaml::Visibility::Collapsed; _accountsMenuButton_->IsChecked = false; _devicesMenuButton_->IsChecked = false; + + generateQRcode(); } void RingClientUWP::Views::SmartPanel::_shareMenuButton__Unchecked(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) @@ -418,6 +430,75 @@ void RingClientUWP::Views::SmartPanel::_contactItem__PointerReleased(Platform::O } +void RingClientUWP::Views::SmartPanel::generateQRcode() +{ + auto ringId = AccountsViewModel::instance->selectedAccount->ringID_; + auto ringId2 = Utils::toString(ringId); + + _ringId_->Text = ringId; + + auto qrcode = QRcode_encodeString(ringId2.c_str(), + 0, //Let the version be decided by libqrencode + QR_ECLEVEL_L, // Lowest level of error correction + QR_MODE_8, // 8-bit data mode + 1); + + if (!qrcode) { + WNG_("Failed to generate QR code: "); + return; + } + + const int STRETCH_FACTOR = 4; + const int widthQrCode = qrcode->width; + const int widthBitmap = STRETCH_FACTOR * widthQrCode; + + unsigned char* qrdata = qrcode->data; + + auto frame = ref new SoftwareBitmap(BitmapPixelFormat::Bgra8, widthBitmap, widthBitmap, BitmapAlphaMode::Premultiplied); + + const int BYTES_PER_PIXEL = 4; + + + BitmapBuffer^ buffer = frame->LockBuffer(BitmapBufferAccessMode::ReadWrite); + IMemoryBufferReference^ reference = buffer->CreateReference(); + + Microsoft::WRL::ComPtr<IMemoryBufferByteAccess> byteAccess; + if (SUCCEEDED(reinterpret_cast<IUnknown*>(reference)->QueryInterface(IID_PPV_ARGS(&byteAccess)))) + { + byte* data; + unsigned capacity; + byteAccess->GetBuffer(&data, &capacity); + + auto desc = buffer->GetPlaneDescription(0); + + unsigned char* row, * p; + p = qrcode->data; + + for (int u = 0 ; u < widthBitmap ; u++) { + for (int v = 0; v < widthBitmap; v++) { + int x = (float)u / (float)widthBitmap * (float)widthQrCode; + int y = (float)v / (float)widthBitmap * (float)widthQrCode; + + auto currPixelRow = desc.StartIndex + desc.Stride * u + BYTES_PER_PIXEL * v; + row = (p + (y * widthQrCode)); + + if (*(row + x) & 0x1) { + data[currPixelRow + 3] = 255; + } + } + } + + } + delete reference; + delete buffer; + + auto sbSource = ref new Media::Imaging::SoftwareBitmapSource(); + + sbSource->SetBitmapAsync(frame); + + _selectedAccountQrCode_->Source = sbSource; +} + Object ^ RingClientUWP::Views::IncomingVisibility::Convert(Object ^ value, Windows::UI::Xaml::Interop::TypeName targetType, Object ^ parameter, String ^ language) { auto state = static_cast<CallStatus>(value); @@ -578,3 +659,11 @@ void RingClientUWP::Views::SmartPanel::_closePin__Click(Platform::Object^ sender // refacto : do something better... _waitingAndResult_->Text = "Exporting account on the Ring..."; } + + +void RingClientUWP::Views::SmartPanel::_shareMenuDone__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) +{ + _shareMenuButton_->IsChecked = false; + + _shareMenuGrid_->Visibility = Windows::UI::Xaml::Visibility::Collapsed; +} diff --git a/SmartPanel.xaml.h b/SmartPanel.xaml.h index 6cecd1d..74d8bcb 100644 --- a/SmartPanel.xaml.h +++ b/SmartPanel.xaml.h @@ -93,6 +93,7 @@ private: void Grid_PointerEntered(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e); void Grid_PointerExited(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e); void _contactItem__PointerReleased(Platform::Object^ sender, Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e); + void generateQRcode(); /* members */ void _devicesMenuButton__Unchecked(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); @@ -103,6 +104,7 @@ private: void _pinGeneratorNo__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); void OnexportOnRingEnded(Platform::String ^accountId, Platform::String ^pin); void _closePin__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); + void _shareMenuDone__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); }; } } \ No newline at end of file diff --git a/Styles.xaml b/Styles.xaml index 3f5854a..aa8e173 100644 --- a/Styles.xaml +++ b/Styles.xaml @@ -56,6 +56,17 @@ <Setter Property="Foreground" Value="White"/> </Style> + <Style x:Key="TextStyle4" + TargetType="TextBlock"> + <Setter Property="FontSize" + Value="12"/> + <Setter Property="HorizontalAlignment" + Value="Center"/> + <Setter Property="VerticalAlignment" + Value="Center"/> + <Setter Property="Foreground" + Value="Black"/> + </Style> <Style x:Key="TextSegoeStyle1" TargetType="TextBlock"> <Setter Property="FontFamily" diff --git a/contrib/qrencode-win32/COPYING b/contrib/qrencode-win32/COPYING new file mode 100644 index 0000000..2d2d780 --- /dev/null +++ b/contrib/qrencode-win32/COPYING @@ -0,0 +1,510 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes a de-facto standard. To achieve this, non-free programs must +be allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least + three years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or +your school, if any, to sign a "copyright disclaimer" for the library, +if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James + Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/contrib/qrencode-win32/ChangeLog b/contrib/qrencode-win32/ChangeLog new file mode 100644 index 0000000..c8542a7 --- /dev/null +++ b/contrib/qrencode-win32/ChangeLog @@ -0,0 +1,1047 @@ +2014.07.24 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrinput.c: + - Code refactoring (QRinput_Struct_count has been added). + - And more code cleanups. + - Avoid to add a Structued-append chunk when only one symbol is + generated. + * tests/test_qrinput.c: + - New test has been added. + * qrinput.c, qrencode.1.in: + - Added new option, "verbose". + * tests/common.h: + - printQRinputStruct() has been added. + [3.4] + - Bumped verstion to 3.4.4. + * Version 3.4.4 has been released. + +2014.06.27 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c, qrencode.1.in: + - Merged pull-request #44. (Thanks to Antenore) + - Fixed some format issues. + +2013.07.29 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.4] + * configure.ac, README, NEWS: + - Bumped version to 3.4.3. + +2013.07.16 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - missing break in switch. (Thanks to ßlúèÇhîp) + * qrinput.c: + - missing/redundant breaks in some switch statements. + +2013.06.17 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Merged pull request #29. (Thanks to Daniel Dörrhöfer) + - Run length encoding has been made non-default. + - New option "--rle" has been instroduced to enable run length encoding + for SVG format. + +2013.03.30 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrinput.c: + - Renamed a variable ("index") to avoid compile-time warning. (Thanks to + Emmanuel Blot) + - Range check improved. + * autogen.sh: + - bug fix.(Thanks to Emmanuel Blot) + +2013.03.26 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Memory leak bug has been fixed. (Thanks to Hassan Hajji) + - Buffer overrun bug has been fixed. + - Code cleanups. + +2013.03.01 Kentaro FUKUCHI <kentaro@fukuchi.org> + * README, NEWS: + - Documentation update. + * Version 3.4.2 has been released. + +2013.02.26 Kentaro FUKUCHI <kentaro@fukuchi.org> + * split.c, tests/test_split.c: + - Applied Viona's bug fix patch. (Thanks to Viona) + - Additional switching cost between AN and Num mode has been included + correctly. + - Additional switching cost between 8 and AN/Num mode has been included + correctly. + - New test case has been added. + +2013.02.16 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.4, master] + * configure.ac, README, NEWS: + - Bumped version to 3.4.2. + +2013.02.16 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Now it includes "string.h" by itself for libpng16. (Thanks to Petr) + +2012.11.30 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrencode.h + - Doxygen documents improved. + +2012.11.09 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrinput.c: + - Code cleanup. + +2012.11.08 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrinput.c: + - Memory leak bug has been fixed. (issue #24) (Thanks to chisj) + * qrencode.c: + - Incorrect bit extraction bug in QRcode_encodeMaskMQR() has been fixed. + (issue #25) (Thanks to vlad417) + * tests/test_qrencode.c: + - Added NUL checks for malloc-related bugs using failmalloc. + - Added a new test for issue #25. (Thanks to vlad417) + +2012.10.17 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.4] + * NEWS: + - Release note has been written. + * Version 3.4.1 has been released. + +2012.10.15 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.4] + * configure.ac: + - HAVE_LIBPTHREAD was not correctly defined in config.h.in. + * tests/test_configure.sh: + - New test script checking autoconf-related scripts has been added. + * configure.ac, README, NEWS: + - Bumped version to 3.4.1. + +2012.10.15 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.4] + * Version 3.4.0 has been released. + [master] + * Merged 3.4.0. + +2012.10.13 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.4] + * qrencode.h: + - Documentation improved. + - Copyright year has been updated. + * Doxyfile: + - Rebased on a template from Doxygen 1.7.6.1. + +2012.10.09 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.4] + * configure.ac, README, NEWS: + - Bumped version to 3.4.0. + * qrencode.1.in: + - Added SVG option to --type. + * qrenc.c: + - Usage improved. + - Inkscape-friendly SVG output. + +2012.09.25 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Input validation improved. (Thanks to Yann Droneaud) + * README: + - Contributors list has been updated. + - Added a note about autogen.sh. + +2012.09.24 Kentaro FUKUCHI <kentaro@fukuchi.org> + * tests/test_bitstream.c: + - Added new test. + * tests/test_{monkey,qrspec}.c: + - Warnings suppressed. + +2012.09.22 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Color palette support has been added. Currently PNG and SVG are + supported + * qrencode.1.in: + - "--foreground" and "--background" options have been added. + +2012.09.19 Kentaro FUKUCHI <kentaro@fukuchi.org> + * README: + - Contributors list has been updated. + * qrencode.1.in: + - Followed Unicode block elements patch. + +2012.09.18 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Merge pull request #19 from mezcalero/master (Unicode block elements + support). + +2012.09.13 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Set XML(SVG) declaration's 'standalone' to 'yes'. + +2012.09.03 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - A bug introduced in 'b3d5f7' has been reverted. (Thanks to Terry) + +2012.09.03 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Integrated David's SVG patch. + +2012.04.21 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Incorrect arguments order has been fixed. (Thank to Fred Steinhaeuser) + +2012.04.18 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.3] + * qrenc.c: + - EPS dot size bug has been fixed (closes: #12). + * Version 3.3.1 has been released. + +2012.04.11 Kentaro FUKUCHI <kentaro@fukuchi.org> + [master] + * qrenc.c: + - Paper size and margin are now set properly in SVG output. + +2012.04.10 Kentaro FUKUCHI <kentaro@fukuchi.org> + [master] + * Following fixes have been contributed by Yutaka Niibe. + * qrencode.1.in: + - "Hyphen-used-as-minus-sign" error has been fixed. + * configure.ac, libqrencode.pc.in, tests/Makefile.am: + - Explicit link to libpthread has been eliminated. + * qrenc.c: + - Pulled Repox's SVG patch (Pull request #10). + - Slightly simplified. + [3.3] + * README, configure.ac: + - Bumped version to 3.3.1. + +2012.04.01 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.3] + * qrenc.c: + - ASCII mode has been added. (Thanks to Ralf Ertzinger) + - Small code cleanups. + - ASCII mode now handles ".txt" suffix correctly. + * NEWS, README: + - Documentation updates. + * Version 3.3.0 has been released. + [master] + * Merged to 3.3.0. + +2012.03.31 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.2] + * README, NEWS, configure.ac: + - Bumped version to 3.2.1. + * Version 3.2.1 has been released. + [3.3] + * qrenc.c: + - Copyright year has been updated. + +2012.03.30 Kentaro FUKUCHI <kentaro@fukuchi.org> + * libqrencode.pc.in : + - Replaced obsolete macro LIBPTHREAD with LIBS. (thx to gniibe) + * configure.ac: + - Checks $ac_cv_lib_pthread_pthread_mutex_init instead of + HAVE_LIBPTHREAD. (thx to gniibe) + +2012.02.28 Kentaro FUKUCHI <kentaro@fukuchi.org> + [master, 3.2.1] + * .gitignore: + - Added "tests/pthread_qrencode". + [3.3] + * 3.3 branch has been started. + - 3.2.1 has been canceled. + * configure.ac, README, NEWS: + - Version number changes. + +2012.01.31 Kentaro FUKUCHI <kentaro@fukuchi.org> + [master] + * Recent 3.2 branch has been merged into the master. + * qrenc.c: + - Quick bug fix introduced in 09b72eb3070a36461eb83c1ec5237e4855ee515b. + +2012.01.19 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.2.1] + * cofigure.ac, qrencode.[hc], qrenc.c, tests/test_qrencode.c: + - QRcode_APIVersion() and QRcode_APIVersionString() have been added. + - New macro values {MAJOR,MINOR,MICRO}_VERSION have been introduced. + - New tests have been added. + * qrenc.c: + - Removed a useless storage class specifier from enum imageType. + [master, 3.2.1] + * Pulled moshen:write_ansi. + [3.2.1] + * tests/decoder.c: + - Bug fix. + * qrenc.c: + - Code refactoring. + - Now you can omit "-o -" for EPS and ANSI output. + - Default margin size has been rollbacked to 4 for ANSI(256). + * README: + - Added Colin (moshen@github) to ACKNOWLEDGMENTS. + - Added zapster's real name to ACKNOWLEDGMENTS. + +2011.12.12 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.2.1] + * configure.ac, README: + - Bumped version to 3.2.1. + +2011.12.12 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c, qrencode.1.in: + - Usage updates. + +2011.12.11 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrenc.c: + - Pulled Zapster's EPS support patch. + - Some code cleanups. + +2011.11.26 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.2.0] + * qrencode.1.in: + - "RESOURCES" section has been added. + * README: + - URL to the main web site updated. + * Version 3.2.0 has been released. + +2011.11.23 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.2.0] + * qrencode.1.in: + - Added descriptions of "-d" and "-M". + +2011.11.3 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.2.0] + * tests/view_qrcode.c: + - Messages improved. + * mmask.c: + - A bug in mask evaluation function has been eliminatd. + * tests/test_mmask.c: + - New test case has been added. + * qrenc.c: + - Micro QR Code support is now marked as "experimental" explicitly. + * tests/test_qrinput.c, tests/test_qrencode.c: + - Added some test cases. + +2011.10.23 Kentaro FUKUCHI <kentaro@fukuchi.org> + [3.2.0] + * 3.2 branch has been started. + * README, NEWS, configure.ac: + - Version number changes. + - Micro QR Code support is now marked as "experimental" explicitly. + +2011.10.23 Kentaro FUKUCHI <kentaro@fukuchi.org> + * mask.c, mmask.c, tests/common.h: + - Eliminated unused valiables. + * tests/test_qrencode.c: + - Some assertions added. + +2011.10.18 Kentaro FUKUCHI <kentaro@fukuchi.org> + * test/test_mask.c: + - To call QRspec_clearCache() at exit. + +2011.10.17 Kentaro FUKUCHI <kentaro@fukuchi.org> + * configure.ac: + - Now the latest PNG library is chosen when the configure script is + executed. + * Copyright year has been updated. + +2011.10.17 Kentaro FUKUCHI <kentaro@fukuchi.org> + * mask.c: + - Unneeded zero-clear has been eliminated from Mask_calcRunLength(). + - A rounding-down error in N4 calculation has been fixed. + (Thanks to Adam Shepherd) + * tests/test_mask.c: + - Fixed some test cases. + +2011.10.17 Kentaro FUKUCHI <kentaro@fukuchi.org> + * mask.c: + - A bug in N3 penalty calculation functoin has been fixed. + (Thanks to Adam Shepherd) + * mask.h, tests/test_mask.c: + - Test cases for Mask_calcN1N3() have been added. + - Wrong test cases have been corrected. + +2011.10.16 Kentaro FUKUCHI <kentaro@fukuchi.org> + * mask.[ch]: + - Mask_calcRunLength() has been refactored out from Mask_evaluateSymbol(). + * test/test_mask.c: + - New test code for Mask_calcRunLength has been added. + +2011.10.13 Kentaro FUKUCHI <kentaro@fukuchi.org> + * mask.[ch]: + - Mask_calcN2() has been refactored out from Mask_evaluateSymbol(). + * test/test_mask.c: + - New test code for Mask_calcN2 has been added. + * README: + - Added a URL to the git repository. + +2011.08.13 Kentaro FUKUCHI <kentaro@fukuchi.org> + * configure.ac: + - Added "AC_PROG_RANLIB" (bug report from dev66) + +2011.08.07 Kentaro FUKUCHI <kentaro@fukuchi.org> + * libqrencode.pc.in: + - Cflags has been set. (issue #2)(Thanks to ryo-on) + +2011.05.05 Kentaro FUKUCHI <kentaro@fukuchi.org> + * split.c: + - strdup() code has been added for non-POSIX environments. (Thanks to + Seth Sims) + * configure.ac: + - Added AC_CHECK_FUNC([strdup]) for non-POSIX environments. + - Now mudflapth is used instead of mudflap when pthread is enabled. + * *.c: + - '#include "config.h"' has been moved to the top of the code and + wrapped with #if HAVE_CONFIG_H - #endif. + +2011.04.06 Kentaro FUKUCHI <kentaro@fukuchi.org> + * qrinput.c: + - Initializaion was missed in QRinput_insertFNC1Header(). + +2011.02.09 Kentaro FUKUCHI <kentaro@fukuchi.org> + * tests/view_qrcode.c: + - "-h" had required an argument. + +2010.10.09 Kentaro FUKUCHI <kentaro@fukuchi.org> + * Copyright year and mail address were updated. + * README, qrencode.spec.in: + - The URL of qrencode's page has been updated. + * Makefile.am: + - Added ACLOCAL_AMFLAGS. + * use/config.rpath: + - Now explicitly included because required by AM_ICONV_LINK in + configure.ac. + +2010.02.03 Kentaro FUKUCHI <fukuchi@megaui.net> + [3.1.1] + * qrencode.c, README: + - Copyright year updates. + * Bumped version to 3.1.1. + * Version 3.1.1 has been released. + +2010.01.27 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrinput.c, qrencode.h: + - 8bit encoding improved. + - QRinput_encodeModeECI(), QRinput_appendECIheader(), + QRinput_estimateBitsModeECI() have been added. + * tests/test_qrinput.c: + - Some tests for ECI header have been added. + * qrinput.[ch]: + - STRUCTURE_HEADER_BITS was renamed to STRUCTURE_HEADER_SIZE. + - MODE_INDICATOR_SIZE has been added. + - QRinput_isSplittableMode() has been added. + * qrspec.c: + - QRspec_maximumWords() now returns 0 if the entry cannot be splitted. + - Now includes "qrinput.h" for QRinput_isSplittableMode(). + +2010.01.25 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.h: + - QR_MODE_{ECI,FNC1A,FNC1B} have been added to QRencodeMode. + * qrspec.h, mqrspec.h, qrinput.c: + - QRSPEC_MODEID_* and MQRSPEC_MODEID_* have been added, and hard coded + numbers were replaced with them. + * qrenc.c: + - Modified usage. + * qrinput.h: + - Added a new field to QRinput for FNC1 support. + * qrinput.c, qrencode.h: + - Added new functions to set FNC1 flag. + - FNC1 second position encoding now supported. + +2010.01.22 Kentaro FUKUCHI <fukuchi@megaui.net> + * tests/test_qrspec.c: + - Code cleanup. + * tests/decoder.[ch], tests/test_qrencode.c: + - Added tests for Micro QR Code. + +2010.01.20 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.c: + - Bug fix. + * tests/decoder.[ch]: + - Code refactoring. + * tests/test_{qrencode,mask,monkey}.c, Makefile.am: + - New tests added. + * qrencode_inner.h: + - Typo fix. + * NEWS: + - Updated. + * qrinput.c: + - Possible memory errors fixed. + * configure.ac, tests/Makefile.am: + - Added iconv checks. + +2010.01.18 Kentaro FUKUCHI <fukuchi@megaui.net> + * configure.ac: + - Configuration cleanups. + * tests/Makefile.am: + - Wrong conditional branch fixed. + * tests/decoder.[ch], tests/Makefile.am: + - Decoding function has been added. + * tests/test_{qrinput,qrspec,qrencode}.c: + - New tests added. + +2010.01.16 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.[ch]: + - QRcode_encodeData{,MQR,Structured}() have been added. + * tests/test_qrencode.c: + - New test has been added. + +2009.11.27 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.h: + - Typo fixes. + +2009.11.06 Kentaro FUKUCHI <fukuchi@megaui.net> + * NEWS, README: + - Documents updated. + * qrspec.[ch], mqrspec.[ch]: + - *_clearCache were not thread safe. + - "Thread unsafe" warnings were removed. + * rscode.[ch] + - free_rs_cache was not thread safe. + - "Thread unsafe" warnings were removed. + +2009.09.28 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrenc.c: + - David's patch has been applied. (Thanks to David) + - New options '-d' and '--dpi' have been added. + - Typo fixes. + * tests/view_qrcode.c: + - Typo fixes. + +2009.06.08 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.c: + - FrameFiller_nextMQR() has integrated to FrameFiller_next(). + - FrameFiller_new() now requires mqr flag. + * qrencode.[ch], tests/prof_qrencode.c, tests/test_{qrencode,monkey}.c: + - QRcode_clearCache() has been added. + * configure.ac, qrencode_inner.h, qrencode.c, mask.[ch], mmask.[ch], + qrinput.h, qrspec.c, tests/common.h: + - A macro WITH_TESTS has been introduced. + - "#ifdef __STATIC" has been replaced with "#ifdef __WITH_TESTS". + - Some definitions in qrencode_inner.h have been moved to appropriate + header files. + - Including config.h became mandatory for test programs. + * tests/pthread_qrencode.c, tests/Makefile.am: + - New test program has been added. + * rscode.c: + - config.h was not included. + * mask.c: + - Race condition problem has been solved. + +2009.06.06 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrenc.c, tests/view_qrcode.c: + - Experimental support of Micro QR Code has been implemented. + * qrencode.[ch]: + - QRinput_setVersionAndErrorCorrectionLevel() has been added. + * tests/common.h, tests/test_split.c: + - Code cleanups. + - printFrame() and printQRcode() have been added. + * tests/test_qrencode.c: + - Some tests have been added. + * qrspec.h, mqrspec.h, qrencode.h: + - Definitions of {MQR,QR}SPEC_VERSION_MAX are moved to qrencode.h. + * qrinput.c, qrencode.h, tests/test_qrencode.c: + - Size check has been removed from QRinput_convertData() for MQR. + - QRinput_convertData() throws ERANGE when the input is too large. + - QRinput_appendPadding*() throws ERANGE when the input is too large. + - As a result, QRencode_encodeString*() throws ERANGE in that cases. + - Some assertion checks of errno added to test_qrencode. + * Bumped version to 3.9.0. + - Next public release will be 4.0.0. + +2009.06.06 Kentaro FUKUCHI <fukuchi@megaui.net> + [3.1.0] + * Version 3.1.0 has been released. + +2009.06.05 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.h, qrencode_inner.h, tests/test_qrencode.c: + - FrameFiller_next() has improved. + - FrameFiller_nextMQR() has been added. + - FrameFiller_test() FrameFiller_testMQR() have been added. + - Tests of FrameFiller added and improved. + +2009.06.04 Kentaro FUKUCHI <fukuchi@megaui.net> + * Makefile.am: + - Dependency check was incorrect because of misconfiguration. + * mask.c, mmask.c: + - Error check has been added to {Mask,MMask}_makeMask(). + * mqrspec.[ch], qrinput.c: + - MQRspec_getDataLength() now returns in byte. + - MQRspec_getDataLengthBit() returns in bit instead. + * qrencode.[ch], qrencode_inner.h: + - QRencode_encodeStringMQR() and its 8bit version are added. + - QRcode_encodeMaskMQR() has been added. + +2009.06.01 Kentaro FUKUCHI <fukuchi@megaui.net> + * tests/prof_qrencode.c: + - Error check has been added. + * tests/common.h: + - Bug fixed. + * qrinput.c, qrencode.h: + - QRinput_Struct_appendInput() and QRinput_splitQRinputToStruct() now + checks mqr flag. + * tests/test_bitstream.c: + - New test of 4bit padding of _toByte(). + +2009.05.30 Kentaro FUKUCHI <fukuchi@megaui.net> + * configure.ac, libqrencode.pc.in: + - New option "--enable-thread-safety" has been added. This option is + enabled by default. + * rscode.c, qrspec.c: + - libqrencode has become thread-safe! (probably) + * tests/common.h: + - sprintfBin() removed, printBstream() added. + * qrinput.[ch], qrencode.[ch], mqrspec.c: + - Functions for Micro QR Code encoding have been added. + * tests/common.h: + - Utility functions improved. + * tests/*.c: + - Code cleanups. + - Tests for Micro QR Code added. + +2009.05.30 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrinput.c: + - padlen check was wrong in QRinput_appendPaddingBit(). + * tests/test_qrinput.c: + - Stop printing bstream->data. + - test_padding2() has been added. + +2009.05.21 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.c, qrencode_inner.h: + - MQRraw_* has been implemented. + - Code cleanups. Struct QRRaw_code is slightly changed. + * tests/test_qrencode.c: + - Added new test. + +2009.05.20 Kentaro FUKUCHI <fukuchi@megaui.net> + * Merged from 3.1.0 branch. (rev 2248:HEAD) + * mqrspec.[ch], tests/create_mqr_frame_pattern.c: + - MQRspec_getEccSpec() has been deleted. + * tests/create_mqr_frame_pattern.c, tests/Makefile.am: + - Newly added. + * mask.[ch], tests/test_mask.c, qrencode_inner.h: + - Code cleanups. + - Unnecessary memcpy has been eliminated. + - New test program has been added. + * mmask.[ch], qrencode_inner.h, tests/test_mmask.c, Makefile.am, tests/Makefile.am: + - Mask module for Micro QR Code has been added. + +2009.05.20 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrenc.c, qrinput.c, qrencode.c: + - Some compile warnings cleared. + * qrencode.c, tests/test_qrencode.c: + - NULL check of an input arg has been added to + QRcode_encodeString8bit(). + - NULL check test and empty string test have been added for + QRcode_encodeString8bit(). + * qrinput.h, qrencode_inner.h, split.c: + - Copyright year updates. + * split.[ch]: + - Split_splitStringToQRinput() set errno EINVAL if input string is + NULL or empty. + - Documentation improved. + * qrenc.c: + - perror() is now used to show the details of some errors. + * qrencode.[ch]: + - Some functions now set errno appropriately. + - Typo fixes. + +2009.05.20 Kentaro FUKUCHI <fukuchi@megaui.net> + * tests/create_frame_pattern.c, tests/Makefile.am: + - New test tool "create_frame_pattern" has been added. + * tests/test_qrspec.c: + - test_alignment1() has been replaced with test_newframe(). + test_newframe() compares newly created frames with frame pattern + data created by create_frame_pattern. + * tests/frame, tests/Makefile.am: + - Pattern file "frame" has been added to EXTRA_DIST. + * mask.c: + - Very small improvement. Unnecessary malloc()s are reduced. + * tests/test_qrencode.c: + - Two new tests have been added. + * split.c: + - NULL check and string length check have been added. + * qrspec.c, tests/test_qrinput.c: + - Forgotten padding bits bug has been fixed. (enbugged at 2009.5.18) + - New test for the bug above has been added. + * qrspec.[ch], qrencode_inner.h: + - Some function becomes __STATIC and their declarations have been + moved to qrencode_inner.h. + * tests/prof_qrencode.c: + - Now liberates all heap at the end of the program. + +2009.05.19 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.c, qrencode_inner.h: + - calloc() is now used to initialize rsblock. + - Number of malloc()s in RSblock_initBlock() has been integrated to + one malloc() in QRraw_new(). + * rscode.c: + - A very small code improvement. + * qrinput.[ch]: + - More return value checks. + - Code cleanups. + * tests/common.h, tests/test_{split,monkey,qrinput}.c: + - Tests improved. + * qrspec.[ch], tests/test_qrspec.c: + - Code cleanups. + - QRspec_rs{Data,Ecc}Length() have been added. + * tests/view_qrcode.c: + - Code cleanups. + - Disabled mask setting in structured mode. + * tests/common.h: + - assert_nothing() has been added. + * qrinput.c, qrencode.c, tests/test_*.c: + - Various *_free() now allow NULL pointer. (nothing performed) + * qrspec.[ch]: + - Alignment pattern is now put by QRspec_putAlignmentPattern(). + QRspec_getAlignmentPattern() and QRspec_freeAlignment() have been + removed. + +2009.05.18 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.c: + - More return value checks. + * bitstream.c: + - BitStream_free() allows NULL pointer (nothing performed). + * qrinput.c: + - QRinput_List_freeEntry() and QRinput_free() allow NULL pointer. + - QRinput_createPaddingBit() has been replaced with + QRinput_appendPaddingBit(). + - QRinput_convertData() now sets errno to EINVAL when input is too + large. + - More return value checks. Mainly for ENOMEM error. + +2009.05.18 Kentaro FUKUCHI <fukuchi@megaui.net> + * Merged from 3.1.0 branch. + +2009.05.16 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.h: + - Indent improvement. + * Makefile.am: + - qrencode.spec has been added to EXTRA_DIST. + +2009.05.14 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrinput.c, qrencode.c, qrspe.c: + - More return value checks. Mainly for ENOMEM error. + * qrspec.[ch], qrencode.c, tests/test_qrspec.c: + - QRspec_getEccSpec() now accepts an int array instead to return + multiple values instead of returning dynamic allocated array. + * mask.c, rscode.c: + - More return value checks from malloc(). + * configure.ac: + - Added "--enable-mudflap" option. + * rscode.[ch]: + - Added free_rs_cache() for debug purpose. + * tests/test_{monkey,qrencode,rs}.c: + - Call free_rs_cache() at the end of the tests. + * qrencode.c: + - QRraw_new() and RSblock_init() have been improved. + - Eliminated unnecessary calls of init_rs(). + * autogen.sh, configure.ac: + - Darwin workarounds. + * tests/common.h, tests/test_bitstream.c: + - New tests have been added. + +2009.05.12 Kentaro FUKUCHI <fukuchi@megaui.net> + * bitstream.c: + - BitStream_toByte() had returned non-NULL for an empty BitStream. + * tests/test_bitstream.c: + - test_null() has been added. + * qrinput.c: + - A possible memory leak has been eliminated. It happend when a wrong + version number was given. + * tests/test_qriput.c: + - Memory leaks have been eliminated. + +2009.05.01 Kentaro FUKUCHI <fukuchi@megaui.net> + * Bumped version to 3.1.0. + +2009.04.30 Kentaro FUKUCHI <fukuchi@megaui.net> + * bistream.[ch]: + - Internal representation of BitStream has been changed from + NUL-terminated string to unsigned char array. + * tests/common.h, tests/test_{bitstream,qrinput}.c: + - Some test sequences have been updated (see above). + +2009.03.25 Kentaro FUKUCHI <fukuchi@megaui.net> + * configure.ac: + - "--without-tests" has become default setting. + * bitstream.[ch]: + - Now functions strictly check return value from malloc() and return + error if it fails. + +2008.10.31 Kentaro FUKUCHI <fukuchi@megaui.net> + * tests/commo.h: + - __FUNCTION__ has been replaced with __func__, to follow the C99 + standard. + - The way of variadic macros has been changed, to follow the C99 + standard. + +2008.10.11 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode_inner.h: + - Now this header is called only by test programs. + * qrencode.c, qrencode_inner.h: + - Some definitions and declares written in qrencode_inner.h have been + moved into qrencode.c: + - QRraw_*() have been declared as __STATIC. + * mask.[ch], qrencode.c, qrencode_inner.h: + - Mask_makeMask() now requires QRecLevel. + - QRencode_writeFormatInformation() has been renamed and moved to + Mask_writeFormatInformation(), and become __STATIC. + * tests/*.c: + - Unneeded #include "qrencode_inner.h" have been removed. + +2008.10.11 Kentaro FUKUCHI <fukuchi@megaui.net> + * autogen.sh: + - Darwin workaround. + * configure.ac: + - Now config.h offers "__STATIC" macro becomes "static" when + "--without-tests" is specified. This macro is useful for functions + called from test programs but not from other library codes. + * qrinput.c: + - Very little performance improvement. + * mask.c: + - Code cleanups. + +2008.09.12 Kentaro FUKUCHI <fukuchi@megaui.net> + * tests/view_qrcode.c: + - Unused variable 'pitch' has been removed from draw_QRcode(). + +2008.06.03 Kentaro FUKUCHI <fukuchi@megaui.net> + * Merged to the main trunk. + +2008.06.01 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrenc.c: + - Now it does not show the full usage when unrecognized options are + given. + - When "--help" is given, it displays the long usage. + * Version 3.0.3 has been released. + +2008.05.26 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrenc.c, tests/view_qrcode.c: + - getopt_long_only() has been replaced with getopt_long() which is + widely available. (Thanks to Gavan Fantom) + - Now it accepts long options. + * qrencode.1.in: + - followed the above changes. + * Bumped version to 3.0.3. + +2008.05.18 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrspec.c: + - The bit order of "Version information" has been corrected. + (Thanks to Paul Janssesn) + * configure.ac, Makefile.am: + - The "--without-tests" has been added to the configure script. + * qrencode.spec.in: + - Uses "--without-tests". + * Version 3.0.2 has been released. + +2008.05.14 Kentaro FUKUCHI <fukuchi@megaui.net> + * various files: + - Some compile-time warnings/erros with g++ have been fixed. + (Thanks to wangsai) + +2008.05.09 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrenc.c: + - Now qrencode writes an image file in binary mode for non-POSIX + platform, such as MS-Windows. (bug report from Paul Janssens) + * Makefile.am: + - tests/test_all.sh has been added. + * tests/test_all.sh: + - Now it exits immediately if any test fails. + * Version 3.0.1 has been released. + +2008.05.01 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.spec.in: + - Added the man page to the files section. + +2008.04.30 Kentaro FUKUCHI <fukuchi@megaui.net> + * Version 3.0.0 has been released. + +2008.04.23 Kentaro FUKUCHI <fukuchi@megaui.net> + * Version 3.0.0rc3 has been released. + - This will probably be the final release candidate, if all goes well. + +2008.04.23 Kentaro FUKUCHI <fukuchi@megaui.net> + * split.c: + - Split_identifyMode() now uses isdigit() and isalnum() macros. + * qrinput.c: + - Error checks have been improved. + * qrenc.c, tests/view_qrcode.c: + - Return value checks have been added. + - Structured-append encode with version 0 now returns error. + * qrencode.[ch]: + - QRencode_encodeStructuredInput() -> QRencode_encodeInputStructured() + (for consistency with other QRencode_encode*Structured() functions) + * mask.c: + - A code block never called has been eliminated. + +2008.04.14 Kentaro FUKUCHI <fukuchi@megaui.net> + * Version 3.0.0rc2 has been released. + +2008.04.20 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.h: + - QR_MODE_NUL has been added to QRencodeMode. Basically it is used + only by Split_identifyMode(). + * qrinput.[ch], split.c: + - QRinput_identifyMode() has been moved to split.c, changed to static + and now needs a hint. + * split.c: + - Auto-splitting has been improved. + * qrinput.c: + - A memory leak has been fixed. + * configure.ac: + - The "--enable-gprof" and "--enable-gcov" options have been added. + * Makefile.am: + - man1_MANS has been moved into the "if BUILD_TOOLS - endif" block. + +2008.04.14 Kentaro FUKUCHI <fukuchi@megaui.net> + * Version 3.0.0rc1 has been released. + +2008.04.14 Kentaro FUKUCHI <fukuchi@megaui.net> + * Bumped version to 3.0.0. + * qrencode.[ch]: + - QRcode_encodeInput() has changed the API. Previously it takes a + QRinput, version and level, but now it takes only a QRinput, because + QRinput holds the version and level in it. From 3.0.0, you should + set them by calling QRinput_setVersion() and + QRinput_setErrorCorrectionLevel(), or use QRinput_new2() to + instantiate a QRinput object. + +2008.04.14 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrspe.c: + - NULL check has been added. + * split.[ch]: + - API changed. + * qrencode.c: + - Arguments (version and level) are now checked in QRcode_encodeMask(). + Internal functions trust the arguments are valid. + - Error checks improved. + * qrinput.c: + - Error checks improved. + * qrencode.h: + - Documentation improvements. + +2008.04.13 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.c, qrencode_innter.h, tests/view_qrcode.c: + - Changed API of QRcode_encodeMask(). + * qrencode.[ch], qrinput.[ch], split.[ch]: + - Some functions now set errno appropriately. + +2008.04.09 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.h, qrinput.c: + - QRinput_Struct_insertStructuredAppendHeaders() and + QRinput_insertStructuredAppendHeader now returns error, when the + input contains too many structured inputs. + * qrencode.c: + - QRcode_encodeInputToStructured() now returns NULL when + QRinput_splitQRinputToStruct() fails. + * tests/view_qrcode.c: + - Segmentation fault bug has been fixed. (see previous memo) + +2008.04.08 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrinput.c: + - Fixed a bug in QRinput_estimateBitStreamSizeOfEntry(). It could + overestimate the size. + * rscode.c: + - Optimized the order of the parameters equality test in init_rs(). + * qrspec.c, qrspec.h: + - Added QRspec_clearCache(). + * tests/test_estimatebit.c: + - Bug fixed in test_numbit3(). + +2008.04.07 Kentaro FUKUCHI <fukuchi@megaui.net> + * Bumped version to 2.1.0. + * Structured append is now supported (patches from Yusuke Mihara): + - Two new types, QRcode_List and QRinput_Struct, have been added. + - Following functions have been added: + - QRcode_encodeStructuredInput() + - QRcode_encodeStringStructured() + - QRcode_encodeString8bitStructured() + - Some functions to handle structured append symbols have been added. + See Doxygen-ized descriptions for the details. + * qrenc.c: + - "-S" option has been added for structured append. + * split.h: + - "extern" was dropped. + * qrinput.h, qrencode.h: + - Moved declarations of QRinput_{get,set}{Version,ErrorCorrectionLevel} + from qrinput.h to qrencode.h. Now they are publicly accessible. + * qrencode.h, qrinput.h, qrinput.c: + - Added QRinput_new2(). + - QRinput_newEntry(), QRinput_freeEntry have been renamed to + QRinput_List_newEntry(), QRinput_List_freeEntry(). + * split.c: + - Bug fix: Split_eat8() now eats at least 1 byte. Previously it could + produce a 0-length input entry. + +2008.01.23 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.1.in, Makefile.am, configure.ac: + - Manpage of qrencode has been added. + * qrenc.c, tests/view_qrcode.c: + - Usage message has been updated. + +2008.01.18 Kentaro FUKUCHI <fukuchi@megaui.net> + * split.c: + - Bug fixes. + * tests/test_split.c: + - Followed recent API changes. + - Added new test "test_toupper()". + * qrenc.c, tests/view_qrcode.c: + - Source-level compatibility has been improved. + - view_qrcode now accepts stdin like qrencode. + - Usage message has been updated/fixed. + * Copyright year has been updated. + +2008.01.16 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrinput.c, split.c: + - Case-sensitive mode becomes now default mode. + - Alphabet-Numeric mode now encodes only upper-case alphabet and + numeric characters. If "-i" option is given, split.c converts + lower-case characters to upper-case characters at first. + * qrenc.c, tests/view_qrcode.c: + - Case-sensitive mode becomes now default mode. + - Option "-i" has been added. + +2007.12.14 Kentaro FUKUCHI <fukuchi@megaui.net> + * tests/test_qrencode.c: + - New test has been added. + * tests/view_qrcode.c: + - Options supported. + - Default mask is now -1 (auto). + +2007.12.13 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.[ch]: + - QRcode_writeFormatInformation now returns a number of dark modules. + * mask.c: + - The mask evaluation function now writes format information before + evaluation. (Philippe Delcroix) + * split.[ch]: + - Case-sensitive mode has been added to QRcode_encodeString(). + - "-8" option has been added to qrenc.c. + - "-c" now encodes in improved case-sensitive mode. + * tests/test_{split,qrencode}.c: + - test_split*() have been moved to test_split.c. + +2007.12.10 Kentaro FUKUCHI <fukuchi@megaui.net> + * Bumped version to 2.0.0. + * Merged to main trunk. + * mask.[ch], split.[ch]: + - Masking functions and splitString functions are separated from + qrencode.c. + * mqrspec.[ch]: + - Specification of Micro QR code has been added, but not used yet. + +2007.03.24 Kentaro FUKUCHI <fukuchi@megaui.net> + * Bumped version to 1.0.2. + +2007.03.24 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode.c (QRcode_splitStringToQRinput): + - a small bug fix. (Thanks to NANKI Haruo) + * qrencode.h: + - "extern "C"" barrier has been added for C++. + * test/view_qrcode.c: + - a typo fix. + +2006.12.27 Kentaro FUKUCHI <fukuchi@megaui.net> + * Bumped version to 1.0.1. + +2006.12.27 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrenc.c, qrencode.[ch]: + - Added force 8-bit encoding mode. + * Makefile.am : + - Automake/Autoconf files have been added to dist-package. + +2006.12.17 Kentaro FUKUCHI <fukuchi@megaui.net> + * qrencode_inner.h, qrencode.c: + - Removed unused member variable "b2" from QRRawCode. + * configure.ac, Makefile.am, acinclude.m4: + - Better configuration of libpng. (now uses pkg-config correctly) + +2006.12.02 Kentaro FUKUCHI <fukuchi@megaui.net> + * Bumped version to 1.0.0. diff --git a/contrib/qrencode-win32/Doxyfile b/contrib/qrencode-win32/Doxyfile new file mode 100644 index 0000000..a2a0151 --- /dev/null +++ b/contrib/qrencode-win32/Doxyfile @@ -0,0 +1,1781 @@ +# Doxyfile 1.7.6.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" "). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or sequence of words) that should +# identify the project. Note that if you do not use Doxywizard you need +# to put quotes around the project name if it contains spaces. + +PROJECT_NAME = QRencode + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer +# a quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "QR Code encoder" + +# With the PROJECT_LOGO tag one can specify an logo or icon that is +# included in the documentation. The maximum height of the logo should not +# exceed 55 pixels and the maximum width should not exceed 200 pixels. +# Doxygen will copy the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding +# "class=itcl::class" will allow you to use the command class in the +# itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this +# tag. The format is ext=language, where ext is a file extension, and language +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and +# unions are shown inside the group in which they are included (e.g. using +# @ingroup) instead of on a separate page (for HTML and Man pages) or +# section (for LaTeX and RTF). + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and +# unions with only public data fields will be shown inline in the documentation +# of the scope in which they are defined (i.e. file, namespace, or group +# documentation), provided this scope is documented. If set to NO (the default), +# structs, classes, and unions are shown on a separate page (for HTML and Man +# pages) or section (for LaTeX and RTF). + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = YES + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penalty. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will roughly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols. + +SYMBOL_CACHE_SIZE = 0 + +# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be +# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given +# their name and scope. Since this can be an expensive process and often the +# same symbol appear multiple times in the code, doxygen keeps a cache of +# pre-resolved symbols. If the cache is too small doxygen will become slower. +# If the cache is too large, memory is wasted. The cache size is given by this +# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = YES + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# do proper type resolution of all parameters of a function it will reject a +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose +# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen +# will still accept a match between prototype and implementation in such cases. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. The create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files +# containing the references data. This must be a list of .bib files. The +# .bib extension is automatically appended if omitted. Using this command +# requires the bibtex tool to be installed. See also +# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style +# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this +# feature you need bibtex and perl available in the search path. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = qrencode.h + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py +# *.f90 *.f *.for *.vhd *.vhdl + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty or if +# non of the patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) +# and it is also possible to disable source filtering for a specific pattern +# using *.ext= (so without naming a filter). This option only has effect when +# FILTER_SOURCE_FILES is enabled. + +FILTER_SOURCE_PATTERNS = + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. Note that when using a custom header you are responsible +# for the proper inclusion of any scripts and style sheets that doxygen +# needs, which is dependent on the configuration options used. +# It is advised to generate a default header using "doxygen -w html +# header.html footer.html stylesheet.css YourConfigFile" and then modify +# that header. Note that the header is subject to change so you typically +# have to redo this when upgrading to a newer version of doxygen or when +# changing the value of configuration settings such as GENERATE_TREEVIEW! + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# style sheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that +# the files will be copied as-is; there are no commands or markers available. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the style sheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> +# Qt Help Project / Custom Filters</a>. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> +# Qt Help Project / Filter Attributes</a>. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) +# at top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. Since the tabs have the same information as the +# navigation tree you can set this option to NO if you already set +# GENERATE_TREEVIEW to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. +# Since the tree basically has the same information as the tab index you +# could consider to set DISABLE_INDEX to NO when enabling this option. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values +# (range [0,1..20]) that doxygen will group on one line in the generated HTML +# documentation. Note that a value of 0 will completely suppress the enum +# values from appearing in the overview section. + +ENUM_VALUES_PER_LINE = 4 + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax +# (see http://www.mathjax.org) which uses client side Javascript for the +# rendering instead of using prerendered bitmaps. Use this if you do not +# have LaTeX installed or if you want to formulas look prettier in the HTML +# output. When enabled you also need to install MathJax separately and +# configure the path to it using the MATHJAX_RELPATH option. + +USE_MATHJAX = NO + +# When MathJax is enabled you need to specify the location relative to the +# HTML output directory using the MATHJAX_RELPATH option. The destination +# directory should contain the MathJax.js script. For instance, if the mathjax +# directory is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the +# mathjax.org site, so you can quickly see the result without installing +# MathJax, but it is strongly recommended to install a local copy of MathJax +# before deployment. + +MATHJAX_RELPATH = http://www.mathjax.org/mathjax + +# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension +# names that should be enabled during MathJax rendering. + +MATHJAX_EXTENSIONS = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a PHP enabled web server instead of at the web client +# using Javascript. Doxygen will generate the search PHP script and index +# file to put on the web server. The advantage of the server +# based approach is that it scales better to large projects and allows +# full text search. The disadvantages are that it is more difficult to setup +# and does not have live searching capabilities. + +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for +# the generated latex document. The footer should contain everything after +# the last chapter. If it is left blank doxygen will generate a +# standard footer. Notice: only use this tag if you know what you are doing! + +LATEX_FOOTER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See +# http://en.wikipedia.org/wiki/BibTeX for more info. + +LATEX_BIB_STYLE = plain + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load style sheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# pointed to by INCLUDE_PATH will be searched when a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition that +# overrules the definition found in the source code. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all references to function-like macros +# that are alone on a line, have an all uppercase name, and do not end with a +# semicolon, because these will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option also works with HAVE_DOT disabled, but it is recommended to +# install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will use the Helvetica font for all dot files that +# doxygen generates. When you want a differently looking font you can specify +# the font name using DOT_FONTNAME. You need to make sure dot is able to find +# the font, which can be done by putting it in a standard location or by setting +# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the Helvetica font. +# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to +# set the path where dot can find it. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will generate a graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are svg, png, jpg, or gif. +# If left blank png will be used. If you choose svg you need to set +# HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible in IE 9+ (other browsers do not have this requirement). + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# Note that this requires a modern browser other than Internet Explorer. +# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you +# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible. Older versions of IE do not have SVG support. + +INTERACTIVE_SVG = NO + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the +# \mscfile command). + +MSCFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = YES + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/contrib/qrencode-win32/Makefile.am b/contrib/qrencode-win32/Makefile.am new file mode 100644 index 0000000..55659c5 --- /dev/null +++ b/contrib/qrencode-win32/Makefile.am @@ -0,0 +1,39 @@ +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS=-I m4 + +SUBDIRS = . + +if BUILD_TESTS +SUBDIRS += tests +endif + +lib_LTLIBRARIES = libqrencode.la + +libqrencode_la_SOURCES = qrencode.c qrencode_inner.h \ + qrinput.c qrinput.h \ + bitstream.c bitstream.h \ + qrspec.c qrspec.h \ + rscode.c rscode.h \ + split.c split.h \ + mask.c mask.h \ + mqrspec.c mqrspec.h \ + mmask.c mmask.h + +libqrencode_la_LDFLAGS = -version-number $(MAJOR_VERSION):$(MINOR_VERSION):$(MICRO_VERSION) + +include_HEADERS = qrencode.h + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = libqrencode.pc + +EXTRA_DIST = libqrencode.pc.in autogen.sh configure.ac acinclude.m4 \ + Makefile.am tests/Makefile.am qrencode.spec.in qrencode.spec \ + qrencode.1.in Doxyfile tests/test_all.sh + +if BUILD_TOOLS +bin_PROGRAMS = qrencode +qrencode_SOURCES = qrenc.c +qrencode_CFLAGS = $(png_CFLAGS) +qrencode_LDADD = libqrencode.la $(png_LIBS) +man1_MANS = qrencode.1 +endif diff --git a/contrib/qrencode-win32/Makefile.in b/contrib/qrencode-win32/Makefile.in new file mode 100644 index 0000000..fc18d3d --- /dev/null +++ b/contrib/qrencode-win32/Makefile.in @@ -0,0 +1,1183 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 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 = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +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@ +target_triplet = @target@ +@BUILD_TESTS_TRUE@am__append_1 = tests +@BUILD_TOOLS_TRUE@bin_PROGRAMS = qrencode$(EXEEXT) +subdir = . +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/configure $(am__configure_deps) \ + $(srcdir)/config.h.in $(srcdir)/libqrencode.pc.in \ + $(srcdir)/qrencode.spec.in $(srcdir)/qrencode.1.in \ + $(top_srcdir)/use/depcomp $(include_HEADERS) COPYING ChangeLog \ + NEWS README TODO use/compile use/config.guess use/config.rpath \ + use/config.sub use/depcomp use/install-sh use/missing \ + use/ltmain.sh $(top_srcdir)/use/compile \ + $(top_srcdir)/use/config.guess $(top_srcdir)/use/config.rpath \ + $(top_srcdir)/use/config.sub $(top_srcdir)/use/install-sh \ + $(top_srcdir)/use/ltmain.sh $(top_srcdir)/use/missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = libqrencode.pc qrencode.spec qrencode.1 +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)$(bindir)" \ + "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(includedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libqrencode_la_LIBADD = +am_libqrencode_la_OBJECTS = qrencode.lo qrinput.lo bitstream.lo \ + qrspec.lo rscode.lo split.lo mask.lo mqrspec.lo mmask.lo +libqrencode_la_OBJECTS = $(am_libqrencode_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 = +libqrencode_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libqrencode_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +PROGRAMS = $(bin_PROGRAMS) +am__qrencode_SOURCES_DIST = qrenc.c +@BUILD_TOOLS_TRUE@am_qrencode_OBJECTS = qrencode-qrenc.$(OBJEXT) +qrencode_OBJECTS = $(am_qrencode_OBJECTS) +am__DEPENDENCIES_1 = +@BUILD_TOOLS_TRUE@qrencode_DEPENDENCIES = libqrencode.la \ +@BUILD_TOOLS_TRUE@ $(am__DEPENDENCIES_1) +qrencode_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(qrencode_CFLAGS) \ + $(CFLAGS) $(AM_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@ +depcomp = $(SHELL) $(top_srcdir)/use/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +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 = $(libqrencode_la_SOURCES) $(qrencode_SOURCES) +DIST_SOURCES = $(libqrencode_la_SOURCES) $(am__qrencode_SOURCES_DIST) +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 +man1dir = $(mandir)/man1 +NROFF = nroff +MANS = $(man1_MANS) +DATA = $(pkgconfig_DATA) +HEADERS = $(include_HEADERS) +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 = . tests +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@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBOBJS = @LIBOBJS@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBOBJS = @LTLIBOBJS@ +MAJOR_VERSION = @MAJOR_VERSION@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MICRO_VERSION = @MICRO_VERSION@ +MINOR_VERSION = @MINOR_VERSION@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_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@ +png_CFLAGS = @png_CFLAGS@ +png_LIBS = @png_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 +SUBDIRS = . $(am__append_1) +lib_LTLIBRARIES = libqrencode.la +libqrencode_la_SOURCES = qrencode.c qrencode_inner.h \ + qrinput.c qrinput.h \ + bitstream.c bitstream.h \ + qrspec.c qrspec.h \ + rscode.c rscode.h \ + split.c split.h \ + mask.c mask.h \ + mqrspec.c mqrspec.h \ + mmask.c mmask.h + +libqrencode_la_LDFLAGS = -version-number $(MAJOR_VERSION):$(MINOR_VERSION):$(MICRO_VERSION) +include_HEADERS = qrencode.h +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = libqrencode.pc +EXTRA_DIST = libqrencode.pc.in autogen.sh configure.ac acinclude.m4 \ + Makefile.am tests/Makefile.am qrencode.spec.in qrencode.spec \ + qrencode.1.in Doxyfile tests/test_all.sh + +@BUILD_TOOLS_TRUE@qrencode_SOURCES = qrenc.c +@BUILD_TOOLS_TRUE@qrencode_CFLAGS = $(png_CFLAGS) +@BUILD_TOOLS_TRUE@qrencode_LDADD = libqrencode.la $(png_LIBS) +@BUILD_TOOLS_TRUE@man1_MANS = qrencode.1 +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +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 +libqrencode.pc: $(top_builddir)/config.status $(srcdir)/libqrencode.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +qrencode.spec: $(top_builddir)/config.status $(srcdir)/qrencode.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +qrencode.1: $(top_builddir)/config.status $(srcdir)/qrencode.1.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +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}; \ + } + +libqrencode.la: $(libqrencode_la_OBJECTS) $(libqrencode_la_DEPENDENCIES) $(EXTRA_libqrencode_la_DEPENDENCIES) + $(AM_V_CCLD)$(libqrencode_la_LINK) -rpath $(libdir) $(libqrencode_la_OBJECTS) $(libqrencode_la_LIBADD) $(LIBS) +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 + +qrencode$(EXEEXT): $(qrencode_OBJECTS) $(qrencode_DEPENDENCIES) $(EXTRA_qrencode_DEPENDENCIES) + @rm -f qrencode$(EXEEXT) + $(AM_V_CCLD)$(qrencode_LINK) $(qrencode_OBJECTS) $(qrencode_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitstream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mask.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmask.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mqrspec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrencode-qrenc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrencode.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrinput.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrspec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rscode.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/split.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +qrencode-qrenc.o: qrenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qrencode_CFLAGS) $(CFLAGS) -MT qrencode-qrenc.o -MD -MP -MF $(DEPDIR)/qrencode-qrenc.Tpo -c -o qrencode-qrenc.o `test -f 'qrenc.c' || echo '$(srcdir)/'`qrenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qrencode-qrenc.Tpo $(DEPDIR)/qrencode-qrenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qrenc.c' object='qrencode-qrenc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qrencode_CFLAGS) $(CFLAGS) -c -o qrencode-qrenc.o `test -f 'qrenc.c' || echo '$(srcdir)/'`qrenc.c + +qrencode-qrenc.obj: qrenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qrencode_CFLAGS) $(CFLAGS) -MT qrencode-qrenc.obj -MD -MP -MF $(DEPDIR)/qrencode-qrenc.Tpo -c -o qrencode-qrenc.obj `if test -f 'qrenc.c'; then $(CYGPATH_W) 'qrenc.c'; else $(CYGPATH_W) '$(srcdir)/qrenc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qrencode-qrenc.Tpo $(DEPDIR)/qrencode-qrenc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qrenc.c' object='qrencode-qrenc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qrencode_CFLAGS) $(CFLAGS) -c -o qrencode-qrenc.obj `if test -f 'qrenc.c'; then $(CYGPATH_W) 'qrenc.c'; else $(CYGPATH_W) '$(srcdir)/qrenc.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-man1: $(man1_MANS) + @$(NORMAL_INSTALL) + @list1='$(man1_MANS)'; \ + list2=''; \ + 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='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + } | 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-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || 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)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(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)$(includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(includedir)'; $(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) | GZIP=$(GZIP_ENV) gzip -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 shar distribution archives 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 distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -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*) \ + GZIP=$(GZIP_ENV) gzip -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*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure \ + $(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 $(LTLIBRARIES) $(PROGRAMS) $(MANS) $(DATA) $(HEADERS) \ + config.h +install-binPROGRAMS: install-libLTLIBRARIES + +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; 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-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile 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-includeHEADERS install-man \ + install-pkgconfigDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-binPROGRAMS install-libLTLIBRARIES + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: install-man1 + +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 -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \ + uninstall-libLTLIBRARIES uninstall-man uninstall-pkgconfigDATA + +uninstall-man: uninstall-man1 + +.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-binPROGRAMS \ + clean-cscope clean-generic clean-libLTLIBRARIES 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-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am \ + install-includeHEADERS install-info install-info-am \ + install-libLTLIBRARIES install-man install-man1 install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am 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-includeHEADERS \ + uninstall-libLTLIBRARIES uninstall-man uninstall-man1 \ + uninstall-pkgconfigDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/contrib/qrencode-win32/NEWS b/contrib/qrencode-win32/NEWS new file mode 100644 index 0000000..ef0efdb --- /dev/null +++ b/contrib/qrencode-win32/NEWS @@ -0,0 +1,271 @@ +libqrencode NEWS - Overview of changes +====================================== + +Version 3.4.4 (2014.7.24) +------------------------- +* Bug fix release. (Thanks to Yoshimichi Inoue) +* New option "--verbose" has been added to the command line tool. + +Release Note: +When only one symbol is generated in structured-append mode, the library had +inserted unnecessary chunk to the symbol and some QR Code readers fail to read +it. Now the library omits the chunk and generate a symbol identical to non- +structured symbol. + + +Version 3.4.3 (2013.8.12) +------------------------- +* New option "--rle" has been added to the command line tool (Thanks to Daniel + Dörrhöfer) +* Bug fixes. (Thanks to Hassan Hajji, Emmanuel Blot, and ßlúèÇhîp) + +Release Note: +This release contains a couple of bug fixes and a new minor feature of the +command line tool. Some minor bugs in the library have been fixed. + +Run Length Encoding (RLE) for SVG output decreases the size of the output file, +but it makes complicated to edit the image by SVG editors. A newly introduced +command line option "--rle" enables RLE. RLE will not be applied if it is not +given. + +Version 3.4.2 (2013.3.1) +------------------------ +* Bug fix release. (Thanks to chisj, vlad417, Petr and Viona) + +Release Note: +Micro QR Code encoder had a bug that caused incorrect output (issue #25). Now +the bug has been fixed. Memory leak bug (#24) and insufficient string splitting +bug have been fixed. + +Version 3.4.1 (2012.10.17) +-------------------------- +* Bug fix release. + +Release Note: +Mutual exclusion did not work correctly since 3.3.1. If your application uses +libqrencode in multithreaded environment, it is strongly recommended to update +it. + +Version 3.4.0 (2012.10.15) +-------------------------- +* SVG, UTF8, and ANSIUTF8 output supports have been added to the command line + tool. (Thanks to Dan Storm, David Dahl, and Lennart Poettering) +* Colored QR Code support. +* Bug fixes. (Thanks to Terry Burton, Fred Steinhaeuser, and Yann Droneaud) + +Release Note: +Three new output format, SVG, UTF8, and ANSIUTF8 have been added to the command +line tool. UTF8 and ANSIUTF8 are another text art mode, using Unicode block +elements for high-resolution text output. Long-awaited colored QR code has been +introduced. Try "--foreground" and "--background" options to set the colors. +Currently PNG and SVG supports colored output. + +Version 3.3.1 (2012.4.18) +------------------------- +* Bugs in command line tool, manual, configure script, and libtool files have + been fixed. (Thanks to Yutaka Niibe and Rob Ryan) + +Version 3.3.0 (2012.4.1) +------------------------- +* EPS, ANSI, and ASCII text output supports have been added. + (Thanks to Zapster, Colin, and Ralf) +* QRcode_APIVersion() and QRcode_APIVersionString() have been added. + +Release Note: +Three new output format, EPS, ANSI, and ASCII text, have been added to the +command line tool. ANSI and ASCII mode ignore "-size" option. Give "-t ASCIIi" +to get an ASCII-mode symbol in inverted color. + +QRcode_APIVersion() is requested by Matthew Baker for better support of Python +ctypes binding. Check them out at https://code.google.com/p/libqrencode-ctypes/ + +Version 3.2.1 (2012.4.1) +------------------------- +* Bugs in configure script and libtool file has been fixed. (Thanks to Yutaka + Niibe) + +Version 3.2.0 (2011.11.26) +-------------------------- +* "--dpi" (or "-d") option has been added to qrencode. This option set DPI + information in an output PNG image. (Thanks to David Dahl) +* New option "--enable-thread-safety" has been added to the configure script + that makes the library thread-safe. It is enabled by default. +* QRcode_encodeData(), QRcode_encodeDataMQR, QRcode_encodeDataStructured() have + been added for binary data encoding including '\0'. +* Typo and bug fixes. +* Experimental Micro QR Code support has been added. +* "--micro" (or "-M") option for Micro QR Code has been added to qrencode. + (experimental) + +Release Note: +Binary data including '\0' is now supported. To encode a binary data, give "-8" +option to qrencode, and let qrencode obtain data via standard input like +"qrencode -8 -o output.png < binary". "--dpi" and "-d" are also added to embed +DPI information to PNG file. + +A bug in the mask pattern evaluation routine has been fixed. In some cases, +libqrencode may generate a different symbol from the one that was generated by +the prior libqrencode because of this bug fix, but the embedded data are not +affected. The symbols generated by the old libqrencode are valid. + +Experimental support of Micro QR Code encoder has been added. Some functions +(QRcode_*MQR()) have been added to the library. The command line tool generates +Micro QR Code when "--micro" or "-M" is given. + +Version 3.1.1 (2010.2.3) +------------------------ +* A bug in the library has been fixed. + +Release Note: + +Libqrecode had generated incorrect QR Code in some cases. Symbols larger than +version 5 (error correction level Q and H) were affected. In many cases this +bug did not cause serious damage thanks to the error correction mechanism, but +we highly recommend you to encode symbols again using this release. + +Version 3.1.0 (2009.6.6) +------------------------ +* Various code cleanups and performance improves. +* Strict internal error checks have been added. +* "--without-tests" has become default setting. Specify "--with-tests" to + compile test programs. +* Some memory leak bugs have been fixed. + +Release Note: + +This release focuses on the code cleanup and performance improve. Encoding time +has been improved, drastically in large symbols. Basically this update only +changes its internal code. The API is not changed, no need to recompile user +applications that includes only qrencode.h. If your application refers the +internal data representation (not recommended), see ChangeLog for further +information. + +Version 3.0.3 (2008.6.1) +------------------------ +* Portability enhancement. (Thanks to Gavan Fantom) +* The command line tool "qrencode" now accepts long options. See the man page + for the detailed instruction. + +Release Note: + +This release improves the portability of our command line tool "qrencode". +The library is not changed so that any applications using libqrencode are not +affected. + +From this release, qrencode accepts "long" options, such as "--help". See the +manpage for the detailed instructions. + +Qrencode now uses getopt_long() instead of getopt_long_only() which is not +available in some operating systems. If the getopt_long() is not provided or +the implementation of it is not compatible with GNU's one, please try +qrencode-3.0.3-gnulib, that contains the source code of the getopt_long(). +Gnulib version is a test release. If you feel happy with it, please let us know +and the future releases will include gnulib. + +Version 3.0.2 (2008.5.18) +------------------------- +* Some compile-time warnings/erros with g++ have been fixed. + (Thanks to wangsai) +* The bit order of "Version information" has been corrected. + Symbols greater than version 6 were affected. (Thanks to Paul Janssesn) +* The "--without-tests" option has been added to the configure script. + +Version 3.0.1 (2008.5.9) +------------------------ +* A bug fix for non-POSIX platform. (Thanks to Paul Janssens) +* The RPM spec file now packages the man page correctly. + +Version 3.0.0 (2008.4.30) +------------------------- +* The interface of QRencode_encodeInput() has been changed. User applications + using it must be modified. +* Structured append support has been added. (patches from Yusuke Mihara) +* The "-S" option for structured append has been added to qrencode and + view_qrcode. +* Some functions now set errno to indicate errors. +* Some bug fixes. + +Release Note: + +Now libqrencode supports "structured-append" of symbols. A large data set can +be split into multiple QR code symbols. The basic usage of structured-append +is not so different from the single symbol encoding: just call +QRcode_encodeStringStructured() or QRcode_encodeString8bitStructured() and +they return a list of symbols. Instead of giving a string, you can encode +an explicitly typed data. See the manual generated by Doxygen for the detailed +usage. + +Many thanks to Yusuke Mihara, who contributed a patch to add support of +structured-append to version 1.0.2. + +API changes: +* Incompatible API changes: + - QRencode_encodeInput +* New types: + - QRinput_Struct + - QRcode_List +* New functions: + - QRinput_new2 + - QRinput_Struct_new + - QRinput_Struct_setParity + - QRinput_Struct_appendInput + - QRinput_Struct_free + - QRinput_Struct_insertStructuredAppendHeaders + - QRinput_splitQRinputToStruct + - QRcode_encodeStructuredInput + - QRcode_encodeStringStructured + - QRcode_encodeString8bitStructured + - QRcode_List_size + - QRcode_List_free +* Declarations moved to qrencode.h: + - QRinput_getErrorCorrectionLevel + - QRinput_setErrorCorrectionLevel + - QRinput_getVersion + - QRinput_setVersion + +Version 2.0.0 (2008.1.24) +-------------------------- +Summary: +* "-i" option to ignore case distinctions has been added to qrencode and + view_qrcode. +* "-c" option (case-sensitive mode) of qrencode is now enabled by default and + has been improved. See details in Release Note section. +* "-8" option has been added to qrencode to encode whole data in 8-bit mode. +* tests/view_qrcode now accepts various options like qrencode. +* Man page has been added. +* Code cleanup. +* The mask evaluation bug has been fixed. (Philippe Delcroix) + +* API changes + - QRcode_encodeString() now receives case-sensitive flag. + - QRcode_encodeStringCase() has been removed. + - QRcode_encodeString8bit() has been added. + +Release Note: + +Previously libqrencode encodes lower-case alphabet characters in Alphabet- +Numeric mode (upper-case alphabet and numeric) by default. According to the +specification of QR code, however, it is clearly claimed that Alphabet-Numeric +mode provides only upper-case alphabet (+ numeric and some symbol) characters. +Since this version, libqrencode distinguishes lower-case and upper-case of +alphabet characters by default. Because of that, "-c" option of qrencode +is now deprecated, and "-i" option has been added. By giving "-i", qrencode +converts lower-case characters to upper-case if possible, then encode a QR code +symbol. Please read qrencode.h for the details about API changes if you are +going to use this library. + +Many thanks to NANKI Haruo for his suggestions. + +Version 1.0.2 (2007.03.24) +-------------------------- +* A small bug fix. (Thanks to NANKI Haruo) +* 'extern "C"' barrier has been added to qrencode.h. + +Version 1.0.1 (2006.12.27) +-------------------------- +* Added "force 8-bit encoding mode". +* Configure script finds libpng's header correctly. + +Version 1.0.0 (2006.12.12) +-------------------------- +* The first public release. diff --git a/contrib/qrencode-win32/README b/contrib/qrencode-win32/README new file mode 100644 index 0000000..e5716d6 --- /dev/null +++ b/contrib/qrencode-win32/README @@ -0,0 +1,145 @@ +libqrencode 3.4.4 - QR Code encoding library + +GENERAL INFORMATION +=================== +Libqrencode is a library for encoding data in a QR Code symbol, a 2D symbology +that can be scanned by handy terminals such as a mobile phone with CCD. The +capacity of QR Code is up to 7000 digits or 4000 characters and has high +robustness. + +Libqrencode accepts a string or a list of data chunks then encodes in a QR Code +symbol as a bitmap array. While other QR Code applications generate an image +file, using libqrencode allows applications to render QR Code symbols from raw +bitmap data directly. This library also contains a command-line utility outputs +a QR Code symbol as a PNG image. + + +SPECIFICATION +============= +Libqrencode supports QR Code model 2, described in JIS (Japanese Industrial +Standards) X0510:2004 or ISO/IEC 18004. Most of features in the specification +are implemented such as: +- Numeric, alphabet, Japanese kanji (Shift-JIS) or any 8 bit code can be + embedded +- Optimized encoding of a string +- Structured-append of symbols +- Micro QR Code (experimental) + +Currently the following features are not supported: +- ECI and FNC1 mode +- QR Code model 1 (deprecated) + + +INSTALL +======= + +Requirements +------------ +Some test programs or utility tools uses SDL or PNG, but the library itself +has no dependencies. You can skip compiling those tools if you want not to +install programs using SDL or PNG. + +Compile & install +----------------- +Just try + +./configure +make +make install + +This compiles and installs the library and header file to the appropriate +directories. By default, /usr/local/lib and /usr/local/include. You can change +the destination directory by passing some options to the configure script. +Run "./configure --help" to see the list of options. + +It also installs a binary "qrencode" to /usr/local/bin. If you want not to +install it, give "--without-tools" option to the configure script. + +When you downloaded a development tree from github, it is required to run +"autogen.sh" at first to generate configure script. + + +USAGE +===== +Basic usages of this library are written in the header file (qrencode.h). +You can generate a manual of the library by using Doxygen. + + +WARNINGS +======== +The library is distributed WITHOUT ANY WRRANTY. + +Micro QR Code support is EXPERIMENTAL. + +Be careful to use the command line tool (qrencode) if it is used by a web +application (e.g. CGI script). For example, giving "-s" option with a large +number to qrencode may cause DoS. The parameters should be checked by the +application. + + +LICENSING INFORMATION +===================== +Copyright (C) 2006-2012 Kentaro Fukuchi + +This library is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License as published by the Free +Software Foundation; either version 2.1 of the License, or any later version. + +This library is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this library; if not, write to the Free Software Foundation, Inc., 51 +Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +CONTACT +======= +Visit the homepage at: + +http://fukuchi.org/works/qrencode/ + +for new releases. The git repository is available at: + +https://github.com/fukuchi/libqrencode + +Please mail any bug reports, suggestions, comments, and questions to: + +Kentaro Fukuchi <kentaro@fukuchi.org> + +or submit issues to: + +https://github.com/fukuchi/libqrencode/issues + +Questions of license compliance are also welcome. + + +ACKNOWLEDGMENTS +=============== +QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other +countries. + +Reed-Solomon encoder is written by Phil Karn, KA9Q. +Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q + +BlueDragon747 - made changes for VS 2015 compatability +NANKI Haruo - improved lower-case characteres encoding +Philippe Delcroix - improved mask evaluation +Yusuke Mihara - structured-append support +David Dahl - DPI and SVG support patch +Adam Shepherd - bug fix patch of the mask evaluation +Josef Eisl (zapster) - EPS support patch +Colin (moshen) - ANSI support patch +Ralf Ertzinger - ASCII support patch +Yutaka Niibe (gniibe) - various bug fix patches +Dan Storm (Repox) - SVG support patch +Lennart Poettering (mezcalero) + - improved text art patch +Yann Droneaud - improved input validation patch +Viona - bug fix patch for string splitting +Daniel Dörrhöfer - RLE option +Shigeyuki Hirai, Paul Janssens, wangsai, Gavan Fantom, Matthew Baker, Rob Ryan, +Fred Steinhaeuser, Terry Burton, chisj, vlad417, Petr, Hassan Hajji, +Emmanuel Blot, ßlúèÇhîp, win32asm, Antenore, Yoshimichi Inoue + - bug report / suggestion diff --git a/contrib/qrencode-win32/TODO b/contrib/qrencode-win32/TODO new file mode 100644 index 0000000..e9662af --- /dev/null +++ b/contrib/qrencode-win32/TODO @@ -0,0 +1,5 @@ +Micro QR code encoding is not tested well. + +Documents (not only the README, but also the manual of the library) needs +revision of grammer, spell or to resolve ambiguity or incomplete descriptions. +Feel really free to send us your revision. diff --git a/contrib/qrencode-win32/acinclude.m4 b/contrib/qrencode-win32/acinclude.m4 new file mode 100644 index 0000000..e69de29 diff --git a/contrib/qrencode-win32/aclocal.m4 b/contrib/qrencode-win32/aclocal.m4 new file mode 100644 index 0000000..25086a5 --- /dev/null +++ b/contrib/qrencode-win32/aclocal.m4 @@ -0,0 +1,11490 @@ +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- + +# Copyright (C) 1996-2013 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'.])]) + +# Copyright (C) 2002-2013 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.14' +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.14.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.14.1])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-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2013 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-2013 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-2013 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-2013 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: +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [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: <http://austingroupbugs.net/view.php?id=542> + +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: <http://www.gnu.org/software/coreutils/>. + +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 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-2013 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}" != 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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-2013 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 <conftest.tar]) + AM_RUN_LOG([cat conftest.dir/file]) + grep GrepMe conftest.dir/file >/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 + +# iconv.m4 serial 18 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2007-2013 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. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <stdlib.h> +#include <iconv.h> + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <stdlib.h> +#include <iconv.h> + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <iconv.h> +#include <string.h> +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 const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + 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, + (char **) &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 const char input[] = "\263"; + char buf[10]; + 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, + (char **) &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 const char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + const char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + (char **) &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 const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + 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, + (char **) &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; +}]])], + [am_cv_func_iconv_works=yes], + [am_cv_func_iconv_works=no], + [ +changequote(,)dnl + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +changequote([,])dnl + ]) + LIBS="$am_save_LIBS" + ]) + 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 + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to +dnl avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl warnings. +m4_define([gl_iconv_AC_DEFUN], + m4_version_prereq([2.64], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [m4_ifdef([gl_00GNULIB], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [[AC_DEFUN( + [$1], [$2])]])])) +gl_iconv_AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL([am_cv_proto_iconv], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include <stdlib.h> +#include <iconv.h> +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 + ]], + [[]])], + [am_cv_proto_iconv_arg1=""], + [am_cv_proto_iconv_arg1="const"]) + 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);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([ + $am_cv_proto_iconv]) + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) + fi +]) + +# lib-ld.m4 serial 6 +dnl Copyright (C) 1996-2003, 2009-2013 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. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + acl_cv_prog_gnu_ld=yes + ;; +*) + acl_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$acl_cv_prog_gnu_ld +]) + +dnl From libtool-2.4. Sets the variable LD. +AC_DEFUN([AC_LIB_PROG_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld [default=no]])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +# 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. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[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 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$acl_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT([$LD]) +else + AC_MSG_RESULT([no]) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) + +# lib-link.m4 serial 26 (gettext-0.18.2) +dnl Copyright (C) 2001-2013 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. + +dnl From Bruno Haible. + +AC_PREREQ([2.54]) + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + pushdef([Name],[m4_translit([$1],[./+-], [____])]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + popdef([NAME]) + popdef([Name]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. The missing-message +dnl defaults to 'no' and may contain additional hints for the user. +dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} +dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + pushdef([Name],[m4_translit([$1],[./+-], [____])]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, + dnl because these -l options might require -L options that are present in + dnl LIBS. -l options benefit only from the -L options listed before it. + dnl Otherwise, add it to the front of LIBS, because it may be a static + dnl library that depends on another static library that is present in LIBS. + dnl Static libraries benefit only from the static libraries listed after + dnl it. + case " $LIB[]NAME" in + *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; + *) LIBS="$LIB[]NAME $LIBS" ;; + esac + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[$3]], [[$4]])], + [ac_cv_lib[]Name=yes], + [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + LIB[]NAME[]_PREFIX= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + popdef([NAME]) + popdef([Name]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl acl_libext, +dnl acl_shlibext, +dnl acl_libname_spec, +dnl acl_library_names_spec, +dnl acl_hardcode_libdir_flag_spec, +dnl acl_hardcode_libdir_separator, +dnl acl_hardcode_direct, +dnl acl_hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + dnl Tell automake >= 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ + 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 + ]) + 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" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl Autoconf >= 2.61 supports dots in --with options. + pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH(P_A_C_K[-prefix], +[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + 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 +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + 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" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + 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" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + 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" + dnl The same code as in the loop below: + dnl First look for a shared library. + 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 + dnl Then look for a static library. + 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 $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + 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 + dnl Then look for a static library. + 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 + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + 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 + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + 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 + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + 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" = '$1'; then + LIB[]NAME[]_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" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + 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 $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + 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 + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + 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 $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + 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 + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + 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 + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + 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 + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + 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*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([P_A_C_K]) + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) + +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2013 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. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + 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 + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + 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" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>. + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif + ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) + ]) + 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" +]) + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is 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) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 57 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.58])dnl We use AC_INCLUDES_DEFAULT +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_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +]) + + +# _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 + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +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 "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_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 + + + +# 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], [[!?.]$], [], [.]) +)]) + + + + + +# _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: +# +# <var>='`$ECHO "$<var>" | $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\\"\\\`\\\\\\"" + ;; + *) + 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\\"\\\`\\\\\\"" + ;; + *) + 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 $lt_write_fail = 0 && 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 <bug-libtool@gnu.org>." + +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 "$silent" = yes && + 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 which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _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) + + _LT_PROG_REPLACE_SHELLFNS + + 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' + TIMESTAMP='$TIMESTAMP' + 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 $_lt_result -eq 0; 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 $_lt_result -eq 0 && $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 "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _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 "$lt_cv_ld_force_load" = "yes"; 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*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + _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 "$lt_cv_apple_cc_single_mod" != "yes"; 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 "${lt_cv_aix_libpath+set}" = 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 which will find a shell with a builtin +# printf (which 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], +[ --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 "$GCC" = yes; 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 in which 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 "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + 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-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + 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 x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if 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*) + 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 "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; 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 + 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" + # 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 x"[$]$2" = xyes; 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 x"[$]$2" = xyes; 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; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + 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 $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +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 "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if 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 "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_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 "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_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 in which 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 "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; 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 "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_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_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 +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +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} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | 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 + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_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], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which 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 which 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 "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$lt_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +_LT_PATH_LD_GNU +AC_SUBST([LD]) + +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) +])# LT_PATH_LD + +# Old names: +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_LD], []) +dnl AC_DEFUN([AC_PROG_LD], []) + + +# _LT_PATH_LD_GNU +#- -------------- +m4_defun([_LT_PATH_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$lt_cv_prog_gnu_ld +])# _LT_PATH_LD_GNU + + +# _LT_CMD_RELOAD +# -------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +m4_defun([_LT_CMD_RELOAD], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl +])# _LT_CMD_RELOAD + + +# _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 +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +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* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +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 + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + 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 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 "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# 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 "$GCC" = yes; 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 "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if 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 con'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* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_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 "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# 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_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_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 "$GXX" = yes; 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 "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + 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']) + ;; + 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 "$host_cpu" = ia64; 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 "$host_cpu" != ia64; 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* | netbsdelf*-gnu) + ;; + *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 "$GCC" = yes; 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 "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + 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']) + ;; + + 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 "$host_cpu" = ia64; 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 + ;; + + 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']) + ;; + + 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' + ;; + 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 which 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 AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_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 + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _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 "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=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 "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _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 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _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 <jrb3@best.com> 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 (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_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 + ;; + + 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 "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _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' ;; + 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 "x$supports_anon_versioning" = xyes; 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 + 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 "x$supports_anon_versioning" = xyes; 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* | netbsdelf*-gnu) + 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 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _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 "$_LT_TAGVAR(ld_shlibs, $1)" = no; 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 "$GCC" = yes && 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 "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_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,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_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 "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _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_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _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 "$with_gnu_ld" = yes; 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 + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + 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~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $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 "$GCC" = yes; 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 $output_objdir/$soname = $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 $output_objdir/$soname = $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 "$GCC" = yes && test "$with_gnu_ld" = no; 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 "$with_gnu_ld" = no; 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 "$GCC" = yes && test "$with_gnu_ld" = no; 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 "$with_gnu_ld" = no; 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 "$GCC" = yes; 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 "$lt_cv_irix_exported_symbol" = yes; 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 + ;; + + netbsd* | netbsdelf*-gnu) + 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*) + 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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _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' + ;; + esac + 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 + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; 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 "$GCC" = yes; 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 "$GCC" = yes; 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 "$GCC" = yes; 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 "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_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 "$GCC" = yes; 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 can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_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 "$GCC" = yes; 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 x$host_vendor = xsni; 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 "$_LT_TAGVAR(ld_shlibs, $1)" = no && 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 "$enable_shared" = yes && test "$GCC" = yes; 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 + +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 which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _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 "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; 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 "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _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 "$GXX" = yes; 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 "$GXX" = yes; 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 "$with_gnu_ld" = yes; 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 "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_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,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_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 "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _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_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _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 "$with_gnu_ld" = yes; 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 + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> 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~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $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 (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + 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 $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + _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 $output_objdir/$soname = $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 $with_gnu_ld = no; 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 "$GXX" = yes; then + if test $with_gnu_ld = no; 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 "$GXX" = yes; then + if test "$with_gnu_ld" = no; 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 "x$supports_anon_versioning" = xyes; 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 + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + 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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 "$GXX" = yes && test "$with_gnu_ld" = no; 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 "$GXX" = yes && test "$with_gnu_ld" = no; 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 $LDFLAGS $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 -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 $LDFLAGS $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 -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 can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_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 "$_LT_TAGVAR(ld_shlibs, $1)" = no && 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 "$_lt_caught_CXX_error" != yes + +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 ${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 +])# _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 $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_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 "$pre_test_object_deps_done" = no; 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)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +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 "X$F77" = "Xno"; 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 "$_lt_disable_F77" != yes; 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 "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_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 "$_lt_disable_F77" != yes + +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 "X$FC" = "Xno"; 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 "$_lt_disable_FC" != yes; 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 "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_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 "$_lt_disable_FC" != yes + +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 + +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 + +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 "x${GCJFLAGS+set}" = xset || 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 $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#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], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +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_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) + + +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi + +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which 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 + +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008, 2009 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 7 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_SET_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_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=default]) + +test -z "$pic_mode" && 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], []) + + +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])]) + +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 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 +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 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 3337 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) + +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2009 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])]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES + +# Configure paths for SDL +# Sam Lantinga 9/21/99 +# stolen from Manish Singh +# stolen back from Frank Belew +# stolen from Manish Singh +# Shamelessly stolen from Owen Taylor + +# serial 1 + +dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS +dnl +AC_DEFUN([AM_PATH_SDL], +[dnl +dnl Get the cflags and libraries from the sdl-config script +dnl +AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], + sdl_prefix="$withval", sdl_prefix="") +AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], + sdl_exec_prefix="$withval", sdl_exec_prefix="") +AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], + , enable_sdltest=yes) + + if test x$sdl_exec_prefix != x ; then + sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config + fi + fi + if test x$sdl_prefix != x ; then + sdl_config_args="$sdl_config_args --prefix=$sdl_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_prefix/bin/sdl-config + fi + fi + + as_save_PATH="$PATH" + if test "x$prefix" != xNONE; then + PATH="$prefix/bin:$prefix/usr/bin:$PATH" + fi + AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) + PATH="$as_save_PATH" + min_sdl_version=ifelse([$1], ,0.11.0,$1) + AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) + no_sdl="" + if test "$SDL_CONFIG" = "no" ; then + no_sdl=yes + else + SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags` + SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs` + + sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_sdltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" +dnl +dnl Now check if the installed SDL is sufficiently new. (Also sanity +dnl checks the results of sdl-config to some extent +dnl + rm -f conf.sdltest + AC_TRY_RUN([ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "SDL.h" + +char* +my_strdup (char *str) +{ + char *new_str; + + if (str) + { + new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +int main (int argc, char *argv[]) +{ + int major, minor, micro; + char *tmp_version; + + /* This hangs on some systems (?) + system ("touch conf.sdltest"); + */ + { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = my_strdup("$min_sdl_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_sdl_version"); + exit(1); + } + + if (($sdl_major_version > major) || + (($sdl_major_version == major) && ($sdl_minor_version > minor)) || + (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); + printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); + printf("*** best to upgrade to the required version.\n"); + printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); + printf("*** to point to the correct copy of sdl-config, and remove the file\n"); + printf("*** config.cache before re-running configure\n"); + return 1; + } +} + +],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_sdl" = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$SDL_CONFIG" = "no" ; then + echo "*** The sdl-config script installed by SDL could not be found" + echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the SDL_CONFIG environment variable to the" + echo "*** full path to sdl-config." + else + if test -f conf.sdltest ; then + : + else + echo "*** Could not run SDL test program, checking why..." + CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" + AC_TRY_LINK([ +#include <stdio.h> +#include "SDL.h" + +int main(int argc, char *argv[]) +{ return 0; } +#undef main +#define main K_and_R_C_main +], [ return 0; ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding SDL or finding the wrong" + echo "*** version of SDL. If it is not finding SDL, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means SDL was incorrectly installed" + echo "*** or that you have moved SDL since it was installed. In the latter case, you" + echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + SDL_CFLAGS="" + SDL_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(SDL_CFLAGS) + AC_SUBST(SDL_LIBS) + rm -f conf.sdltest +]) + +m4_include([acinclude.m4]) diff --git a/contrib/qrencode-win32/autogen.sh b/contrib/qrencode-win32/autogen.sh new file mode 100644 index 0000000..b90f44f --- /dev/null +++ b/contrib/qrencode-win32/autogen.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +set -e + +if [ `uname -s` = Darwin ]; then + LIBTOOLIZE=glibtoolize +else + LIBTOOLIZE=libtoolize +fi + +ACLOCAL_OPT="" +if [ -d /usr/local/share/aclocal ]; then + ACLOCAL_OPT="-I /usr/local/share/aclocal" +elif [ -d /opt/local/share/aclocal ]; then + ACLOCAL_OPT="-I /opt/local/share/aclocal" +elif [ -d /usr/share/aclocal ]; then + ACLOCAL_OPT="-I /usr/share/aclocal" +fi + +if [ ! -d use ]; then + mkdir use +fi + +autoheader + +aclocal $ACLOCAL_OPT + +$LIBTOOLIZE --automake --copy +automake --add-missing --copy + +autoconf diff --git a/contrib/qrencode-win32/bitstream.c b/contrib/qrencode-win32/bitstream.c new file mode 100644 index 0000000..a0b9283 --- /dev/null +++ b/contrib/qrencode-win32/bitstream.c @@ -0,0 +1,238 @@ +/* + * qrencode - QR Code encoder + * + * Binary sequence class. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "bitstream.h" + +BitStream *BitStream_new(void) +{ + BitStream *bstream; + + bstream = (BitStream *)malloc(sizeof(BitStream)); + if(bstream == NULL) return NULL; + + bstream->length = 0; + bstream->data = NULL; + + return bstream; +} + +static int BitStream_allocate(BitStream *bstream, int length) +{ + unsigned char *data; + + if(bstream == NULL) { + return -1; + } + + data = (unsigned char *)malloc(length); + if(data == NULL) { + return -1; + } + + if(bstream->data) { + free(bstream->data); + } + bstream->length = length; + bstream->data = data; + + return 0; +} + +static BitStream *BitStream_newFromNum(int bits, unsigned int num) +{ + unsigned int mask; + int i; + unsigned char *p; + BitStream *bstream; + + bstream = BitStream_new(); + if(bstream == NULL) return NULL; + + if(BitStream_allocate(bstream, bits)) { + BitStream_free(bstream); + return NULL; + } + + p = bstream->data; + mask = 1 << (bits - 1); + for(i=0; i<bits; i++) { + if(num & mask) { + *p = 1; + } else { + *p = 0; + } + p++; + mask = mask >> 1; + } + + return bstream; +} + +static BitStream *BitStream_newFromBytes(int size, unsigned char *data) +{ + unsigned char mask; + int i, j; + unsigned char *p; + BitStream *bstream; + + bstream = BitStream_new(); + if(bstream == NULL) return NULL; + + if(BitStream_allocate(bstream, size * 8)) { + BitStream_free(bstream); + return NULL; + } + + p = bstream->data; + for(i=0; i<size; i++) { + mask = 0x80; + for(j=0; j<8; j++) { + if(data[i] & mask) { + *p = 1; + } else { + *p = 0; + } + p++; + mask = mask >> 1; + } + } + + return bstream; +} + +int BitStream_append(BitStream *bstream, BitStream *arg) +{ + unsigned char *data; + + if(arg == NULL) { + return -1; + } + if(arg->length == 0) { + return 0; + } + if(bstream->length == 0) { + if(BitStream_allocate(bstream, arg->length)) { + return -1; + } + memcpy(bstream->data, arg->data, arg->length); + return 0; + } + + data = (unsigned char *)malloc(bstream->length + arg->length); + if(data == NULL) { + return -1; + } + memcpy(data, bstream->data, bstream->length); + memcpy(data + bstream->length, arg->data, arg->length); + + free(bstream->data); + bstream->length += arg->length; + bstream->data = data; + + return 0; +} + +int BitStream_appendNum(BitStream *bstream, int bits, unsigned int num) +{ + BitStream *b; + int ret; + + if(bits == 0) return 0; + + b = BitStream_newFromNum(bits, num); + if(b == NULL) return -1; + + ret = BitStream_append(bstream, b); + BitStream_free(b); + + return ret; +} + +int BitStream_appendBytes(BitStream *bstream, int size, unsigned char *data) +{ + BitStream *b; + int ret; + + if(size == 0) return 0; + + b = BitStream_newFromBytes(size, data); + if(b == NULL) return -1; + + ret = BitStream_append(bstream, b); + BitStream_free(b); + + return ret; +} + +unsigned char *BitStream_toByte(BitStream *bstream) +{ + int i, j, size, bytes; + unsigned char *data, v; + unsigned char *p; + + size = BitStream_size(bstream); + if(size == 0) { + return NULL; + } + data = (unsigned char *)malloc((size + 7) / 8); + if(data == NULL) { + return NULL; + } + + bytes = size / 8; + + p = bstream->data; + for(i=0; i<bytes; i++) { + v = 0; + for(j=0; j<8; j++) { + v = v << 1; + v |= *p; + p++; + } + data[i] = v; + } + if(size & 7) { + v = 0; + for(j=0; j<(size & 7); j++) { + v = v << 1; + v |= *p; + p++; + } + data[bytes] = v; + } + + return data; +} + +void BitStream_free(BitStream *bstream) +{ + if(bstream != NULL) { + free(bstream->data); + free(bstream); + } +} diff --git a/contrib/qrencode-win32/bitstream.h b/contrib/qrencode-win32/bitstream.h new file mode 100644 index 0000000..ffe743c --- /dev/null +++ b/contrib/qrencode-win32/bitstream.h @@ -0,0 +1,38 @@ +/* + * qrencode - QR Code encoder + * + * Binary sequence class. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __BITSTREAM_H__ +#define __BITSTREAM_H__ + +typedef struct { + int length; + unsigned char *data; +} BitStream; + +extern BitStream *BitStream_new(void); +extern int BitStream_append(BitStream *bstream, BitStream *arg); +extern int BitStream_appendNum(BitStream *bstream, int bits, unsigned int num); +extern int BitStream_appendBytes(BitStream *bstream, int size, unsigned char *data); +#define BitStream_size(__bstream__) (__bstream__->length) +extern unsigned char *BitStream_toByte(BitStream *bstream); +extern void BitStream_free(BitStream *bstream); + +#endif /* __BITSTREAM_H__ */ diff --git a/contrib/qrencode-win32/config.h.in b/contrib/qrencode-win32/config.h.in new file mode 100644 index 0000000..644d72d --- /dev/null +++ b/contrib/qrencode-win32/config.h.in @@ -0,0 +1,94 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if using pthread is enabled. */ +#undef HAVE_LIBPTHREAD + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strdup' function. */ +#undef HAVE_STRDUP + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Major version number */ +#undef MAJOR_VERSION + +/* Micro version number */ +#undef MICRO_VERSION + +/* Minor version number */ +#undef MINOR_VERSION + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* 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 to 'static' if no test programs will be compiled. */ +#define __STATIC static +#undef WITH_TESTS + diff --git a/contrib/qrencode-win32/configure b/contrib/qrencode-win32/configure new file mode 100644 index 0000000..6205dc3 --- /dev/null +++ b/contrib/qrencode-win32/configure @@ -0,0 +1,16430 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for QRencode 3.4.4. +# +# +# 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 \$(( 1 + 1 )) = 2 || 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" + 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 about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_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 </dev/null +exec 6>&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='QRencode' +PACKAGE_TARNAME='qrencode' +PACKAGE_VERSION='3.4.4' +PACKAGE_STRING='QRencode 3.4.4' +PACKAGE_BUGREPORT='' +PACKAGE_URL='' + +ac_unique_file="qrencode.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include <stdio.h> +#ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif +#ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#ifdef STDC_HEADERS +# include <stdlib.h> +# include <stddef.h> +#else +# ifdef HAVE_STDLIB_H +# include <stdlib.h> +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#endif +#ifdef HAVE_STRINGS_H +# include <strings.h> +#endif +#ifdef HAVE_INTTYPES_H +# include <inttypes.h> +#endif +#ifdef HAVE_STDINT_H +# include <stdint.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +HAVE_SDL_FALSE +HAVE_SDL_TRUE +LTLIBICONV +LIBICONV +SDL_LIBS +SDL_CFLAGS +SDL_CONFIG +BUILD_TESTS_FALSE +BUILD_TESTS_TRUE +png_LIBS +png_CFLAGS +BUILD_TOOLS_FALSE +BUILD_TOOLS_TRUE +HAVE_LIBPTHREAD_FALSE +HAVE_LIBPTHREAD_TRUE +LIBPTHREAD +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +LIBTOOL +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +AM_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 +target_os +target_vendor +target_cpu +target +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +MICRO_VERSION +MINOR_VERSION +MAJOR_VERSION +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_static +enable_dependency_tracking +enable_shared +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_thread_safety +with_tools +with_tests +with_sdl_prefix +with_sdl_exec_prefix +enable_sdltest +enable_rpath +with_libiconv_prefix +enable_gprof +enable_gcov +enable_mudflap +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +png_CFLAGS +png_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +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 QRencode 3.4.4 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/qrencode] + --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] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of QRencode 3.4.4:";; + 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-static[=PKGS] build static libraries [default=no] + --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-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-thread-safety make the library thread-safe. [default=yes] + --disable-sdltest Do not try to compile and run a test SDL program + --disable-rpath do not hardcode runtime library paths + --enable-gprof generate extra code to write profile information + suitable for gprof [default=no] + --enable-gcov generate extra code to write coverage information + suitable for gcov [default=no] + --enable-mudflap generate extra code to check memory leaks + [default=no] + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + --with-tools build utility tools [default=yes] + --with-tests build tests [default=no] + --with-sdl-prefix=PFX Prefix where SDL is installed (optional) + --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional) + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --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 + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a + nonstandard directory <lib dir> + LIBS libraries to pass to the linker, e.g. -l<library> + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if + you have headers in a nonstandard directory <include dir> + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + png_CFLAGS C compiler flags for png, overriding pkg-config + png_LIBS linker flags for png, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to the package provider. +_ACEOF +ac_status=$? +fi + +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 +QRencode configure 3.4.4 +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_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_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_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_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 <limits.h> declares $2. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#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 +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by QRencode $as_me 3.4.4, 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 + +# 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 + + + +MAJOR_VERSION=3 +MINOR_VERSION=4 +MICRO_VERSION=4 + + + + +cat >>confdefs.h <<_ACEOF +#define MAJOR_VERSION $MAJOR_VERSION +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define MINOR_VERSION $MINOR_VERSION +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define MICRO_VERSION $MICRO_VERSION +_ACEOF + + + +ac_config_headers="$ac_config_headers config.h" + +ac_aux_dir= +for ac_dir in use "$srcdir"/use; 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 use \"$srcdir\"/use" "$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 + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if ${ac_cv_target+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +am__api_version='1.14' + +# 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}" != 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='qrencode' + VERSION='3.4.4' + + +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: +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# 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: <http://austingroupbugs.net/view.php?id=542> + +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: <http://www.gnu.org/software/coreutils/>. + +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 + +# 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=no +fi + + + + + + + + + +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 + + +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 + +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 <stdio.h> +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdarg.h> +#include <stdio.h> +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 + + + +{ $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 + +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 <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> 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 <limits.h> +#else +# include <assert.h> +#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 <ac_nonexistent.h> +_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 <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> 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 <limits.h> +#else +# include <assert.h> +#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 <ac_nonexistent.h> +_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 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 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 <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +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 <string.h> + +_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 <stdlib.h> + +_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 <ctype.h> +#include <stdlib.h> +#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 + + +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 <stdarg.h> +#include <stdio.h> +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.2' +macro_revision='1.3337' + + + + + + + + + + + + + +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 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 "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$lt_cv_path_LD" +if test -n "$LD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } +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 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if 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 /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + 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 $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if 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 +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +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* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if 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 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 "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if 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 + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + 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-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if 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 "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if 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 $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# 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 + + + + + +# 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 --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=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" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +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 + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # 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_PKG_CONFIG="$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 + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # 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_ac_pt_PKG_CONFIG="$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 + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + 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 + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $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; } + PKG_CONFIG="" + fi +fi + +ac_config_files="$ac_config_files Makefile libqrencode.pc tests/Makefile qrencode.spec qrencode.1" + + +for ac_func in strdup +do : + ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup" +if test "x$ac_cv_func_strdup" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRDUP 1 +_ACEOF + +fi +done + + +# Check whether --enable-thread-safety was given. +if test "${enable_thread_safety+set}" = set; then : + enableval=$enable_thread_safety; +else + enable_thread_safety=yes +fi + + +if test x$enable_thread_safety = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_init in -lpthread" >&5 +$as_echo_n "checking for pthread_mutex_init in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_mutex_init+:} 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_mutex_init (); +int +main () +{ +return pthread_mutex_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_mutex_init=yes +else + ac_cv_lib_pthread_pthread_mutex_init=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_mutex_init" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_mutex_init" >&6; } +if test "x$ac_cv_lib_pthread_pthread_mutex_init" = xyes; then : + LIBPTHREAD=-lpthread + +fi + +fi + if test "x$ac_cv_lib_pthread_pthread_mutex_init" = "xyes" ; then + HAVE_LIBPTHREAD_TRUE= + HAVE_LIBPTHREAD_FALSE='#' +else + HAVE_LIBPTHREAD_TRUE='#' + HAVE_LIBPTHREAD_FALSE= +fi + +# FIXME: isn't it able to integrate the followings to AC_CHECK_LIB? +if test x$ac_cv_lib_pthread_pthread_mutex_init = xyes ; then + +$as_echo "#define HAVE_LIBPTHREAD 1" >>confdefs.h + +fi + + + +# Check whether --with-tools was given. +if test "${with_tools+set}" = set; then : + withval=$with_tools; build_tools=$withval +else + build_tools=yes +fi + + + if test "x$build_tools" = "xyes" ; then + BUILD_TOOLS_TRUE= + BUILD_TOOLS_FALSE='#' +else + BUILD_TOOLS_TRUE='#' + BUILD_TOOLS_FALSE= +fi + +if test x$build_tools = xyes ; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for png" >&5 +$as_echo_n "checking for png... " >&6; } + +if test -n "$png_CFLAGS"; then + pkg_cv_png_CFLAGS="$png_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"libpng\"\""; } >&5 + ($PKG_CONFIG --exists --print-errors ""libpng"") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_png_CFLAGS=`$PKG_CONFIG --cflags ""libpng"" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$png_LIBS"; then + pkg_cv_png_LIBS="$png_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"libpng\"\""; } >&5 + ($PKG_CONFIG --exists --print-errors ""libpng"") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_png_LIBS=`$PKG_CONFIG --libs ""libpng"" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + png_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs ""libpng"" 2>&1` + else + png_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs ""libpng"" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$png_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (\"libpng\") were not met: + +$png_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables png_CFLAGS +and png_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables png_CFLAGS +and png_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } +else + png_CFLAGS=$pkg_cv_png_CFLAGS + png_LIBS=$pkg_cv_png_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi +fi + + +# Check whether --with-tests was given. +if test "${with_tests+set}" = set; then : + withval=$with_tests; build_tests=$withval +else + build_tests=no +fi + + + if test "x$build_tests" = "xyes" ; then + BUILD_TESTS_TRUE= + BUILD_TESTS_FALSE='#' +else + BUILD_TESTS_TRUE='#' + BUILD_TESTS_FALSE= +fi + + +if test x$build_tests = xyes ; then +echo "#define __STATIC" >>confdefs.h +echo "#define WITH_TESTS 1" >>confdefs.h +else +echo "#define __STATIC static" >>confdefs.h +echo "/* #undef WITH_TESTS */" >>confdefs.h +fi + +if test x$build_tests = xyes ; then + SDL_REQUIRED_VERSION=1.2.0 + +# Check whether --with-sdl-prefix was given. +if test "${with_sdl_prefix+set}" = set; then : + withval=$with_sdl_prefix; sdl_prefix="$withval" +else + sdl_prefix="" +fi + + +# Check whether --with-sdl-exec-prefix was given. +if test "${with_sdl_exec_prefix+set}" = set; then : + withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" +else + sdl_exec_prefix="" +fi + +# Check whether --enable-sdltest was given. +if test "${enable_sdltest+set}" = set; then : + enableval=$enable_sdltest; +else + enable_sdltest=yes +fi + + + if test x$sdl_exec_prefix != x ; then + sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config + fi + fi + if test x$sdl_prefix != x ; then + sdl_config_args="$sdl_config_args --prefix=$sdl_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_prefix/bin/sdl-config + fi + fi + + as_save_PATH="$PATH" + if test "x$prefix" != xNONE; then + PATH="$prefix/bin:$prefix/usr/bin:$PATH" + fi + # Extract the first word of "sdl-config", so it can be a program name with args. +set dummy sdl-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_SDL_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $SDL_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # 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_SDL_CONFIG="$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_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no" + ;; +esac +fi +SDL_CONFIG=$ac_cv_path_SDL_CONFIG +if test -n "$SDL_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDL_CONFIG" >&5 +$as_echo "$SDL_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + PATH="$as_save_PATH" + min_sdl_version=$SDL_REQUIRED_VERSION + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL - version >= $min_sdl_version" >&5 +$as_echo_n "checking for SDL - version >= $min_sdl_version... " >&6; } + no_sdl="" + if test "$SDL_CONFIG" = "no" ; then + no_sdl=yes + else + SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags` + SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs` + + sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` + sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` + sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` + if test "x$enable_sdltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" + rm -f conf.sdltest + if test "$cross_compiling" = yes; then : + echo $ac_n "cross compiling; assumed OK... $ac_c" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "SDL.h" + +char* +my_strdup (char *str) +{ + char *new_str; + + if (str) + { + new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +int main (int argc, char *argv[]) +{ + int major, minor, micro; + char *tmp_version; + + /* This hangs on some systems (?) + system ("touch conf.sdltest"); + */ + { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = my_strdup("$min_sdl_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_sdl_version"); + exit(1); + } + + if (($sdl_major_version > major) || + (($sdl_major_version == major) && ($sdl_minor_version > minor)) || + (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); + printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); + printf("*** best to upgrade to the required version.\n"); + printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); + printf("*** to point to the correct copy of sdl-config, and remove the file\n"); + printf("*** config.cache before re-running configure\n"); + return 1; + } +} + + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + no_sdl=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_sdl" = x ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "$SDL_CONFIG" = "no" ; then + echo "*** The sdl-config script installed by SDL could not be found" + echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the SDL_CONFIG environment variable to the" + echo "*** full path to sdl-config." + else + if test -f conf.sdltest ; then + : + else + echo "*** Could not run SDL test program, checking why..." + CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <stdio.h> +#include "SDL.h" + +int main(int argc, char *argv[]) +{ return 0; } +#undef main +#define main K_and_R_C_main + +int +main () +{ + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding SDL or finding the wrong" + echo "*** version of SDL. If it is not finding SDL, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" +else + echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means SDL was incorrectly installed" + echo "*** or that you have moved SDL since it was installed. In the latter case, you" + echo "*** may want to edit the sdl-config script: $SDL_CONFIG" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + SDL_CFLAGS="" + SDL_LIBS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** SDL $SDL_REQUIRED_VERSION or better is required." >&5 +$as_echo "$as_me: WARNING: *** SDL $SDL_REQUIRED_VERSION or better is required." >&2;} + fi + + + rm -f conf.sdltest + + { $as_echo "$as_me:${as_lineno-$LINENO}: SDL check done." >&5 +$as_echo "$as_me: SDL check done." >&6;} + + 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 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$acl_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$acl_cv_path_LD" +if test -n "$LD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&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 </dev/null` in +*GNU* | *'with BFD'*) + acl_cv_prog_gnu_ld=yes + ;; +*) + acl_cv_prog_gnu_ld=no + ;; +esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&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" + + + + + + + + + + + + + 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 <stdlib.h> +#include <iconv.h> + +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 <stdlib.h> +#include <iconv.h> + +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 + 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 <iconv.h> +#include <string.h> +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 const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + 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, + (char **) &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 const char input[] = "\263"; + char buf[10]; + 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, + (char **) &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 const char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + const char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + (char **) &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 const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + 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, + (char **) &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; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + am_cv_func_iconv_works=yes +else + am_cv_func_iconv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + 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 + + + +fi + if test "x$SDL_CFLAGS" != "x" ; then + HAVE_SDL_TRUE= + HAVE_SDL_FALSE='#' +else + HAVE_SDL_TRUE='#' + HAVE_SDL_FALSE= +fi + + + +# Check whether --enable-gprof was given. +if test "${enable_gprof+set}" = set; then : + enableval=$enable_gprof; +else + enable_gprof=no +fi + + +if test x$enable_gprof = xyes; then + CFLAGS="$CFLAGS -g -pg" +fi + + +# Check whether --enable-gcov was given. +if test "${enable_gcov+set}" = set; then : + enableval=$enable_gcov; +else + enable_gcov=no +fi + + +if test x$enable_gcov = xyes; then + CFLAGS="$CFLAGS --coverage" +fi + + +# Check whether --enable-mudflap was given. +if test "${enable_mudflap+set}" = set; then : + enableval=$enable_mudflap; +else + enable_mudflap=no +fi + + +if test x$enable_mudflap = xyes; then + if test x$enable_thread_safety = xyes; then + CFLAGS="$CFLAGS -fmudflapth" + LDFLAGS="$LDFLAGS -lmudflapth" + else + CFLAGS="$CFLAGS -fmudflap" + LDFLAGS="$LDFLAGS -lmudflap" + fi +fi + + +CFLAGS="-Wall $CFLAGS" + + +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__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_LIBPTHREAD_TRUE}" && test -z "${HAVE_LIBPTHREAD_FALSE}"; then + as_fn_error $? "conditional \"HAVE_LIBPTHREAD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_TOOLS_TRUE}" && test -z "${BUILD_TOOLS_FALSE}"; then + as_fn_error $? "conditional \"BUILD_TOOLS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_TESTS_TRUE}" && test -z "${BUILD_TESTS_FALSE}"; then + as_fn_error $? "conditional \"BUILD_TESTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_SDL_TRUE}" && test -z "${HAVE_SDL_FALSE}"; then + as_fn_error $? "conditional \"HAVE_SDL\" 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 QRencode $as_me 3.4.4, 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 the package provider." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +QRencode config.status 3.4.4 +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' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_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"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "libqrencode.pc") CONFIG_FILES="$CONFIG_FILES libqrencode.pc" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "qrencode.spec") CONFIG_FILES="$CONFIG_FILES qrencode.spec" ;; + "qrencode.1") CONFIG_FILES="$CONFIG_FILES qrencode.1" ;; + + *) 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 2>/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 +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$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 +' <confdefs.h | sed ' +s/'"$ac_delim"'/"\\\ +"/g' >>$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 which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# 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 + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + 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 + + +echo "" +echo "Options used to compile and link:" +echo " CC = $CC" +echo " CFLAGS = $CFLAGS" +echo " CPPFLAGS = $CPPFLAGS" +echo " CXX = $CXX" +echo " CXXFLAGS = $CXXFLAGS" +echo " LDFLAGS = $LDFLAGS" +echo "" diff --git a/contrib/qrencode-win32/configure.ac b/contrib/qrencode-win32/configure.ac new file mode 100644 index 0000000..d84852a --- /dev/null +++ b/contrib/qrencode-win32/configure.ac @@ -0,0 +1,139 @@ +m4_define([__MAJOR_VERSION], [3])dnl +m4_define([__MINOR_VERSION], [4])dnl +m4_define([__MICRO_VERSION], [4])dnl +m4_define([__VERSION], [__MAJOR_VERSION.__MINOR_VERSION.__MICRO_VERSION])dnl +AC_INIT(QRencode, __VERSION) + +MAJOR_VERSION=__MAJOR_VERSION +MINOR_VERSION=__MINOR_VERSION +MICRO_VERSION=__MICRO_VERSION +AC_SUBST(MAJOR_VERSION) +AC_SUBST(MINOR_VERSION) +AC_SUBST(MICRO_VERSION) +AC_DEFINE_UNQUOTED([MAJOR_VERSION], [$MAJOR_VERSION], [Major version number]) +AC_DEFINE_UNQUOTED([MINOR_VERSION], [$MINOR_VERSION], [Minor version number]) +AC_DEFINE_UNQUOTED([MICRO_VERSION], [$MICRO_VERSION], [Micro version number]) + +AC_CONFIG_SRCDIR([qrencode.c]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_AUX_DIR(use) +AC_CONFIG_MACRO_DIR([m4]) +AC_CANONICAL_HOST +AC_CANONICAL_TARGET + +AM_INIT_AUTOMAKE + +AC_DISABLE_STATIC +AC_C_CONST +AC_C_INLINE +AC_HEADER_STDC + +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_INSTALL +AC_PROG_LIBTOOL +AC_PROG_RANLIB +PKG_PROG_PKG_CONFIG + +AC_CONFIG_FILES([Makefile libqrencode.pc tests/Makefile qrencode.spec qrencode.1]) + +AC_CHECK_FUNCS([strdup]) + +dnl --enable-thread-safety +AC_ARG_ENABLE([thread-safety], [AS_HELP_STRING([--enable-thread-safety], [make the library thread-safe. [default=yes]])], + [], [enable_thread_safety=yes]) + +if test x$enable_thread_safety = xyes; then + AC_CHECK_LIB([pthread], [pthread_mutex_init], [AC_SUBST([LIBPTHREAD], [-lpthread])]) +fi +AM_CONDITIONAL([HAVE_LIBPTHREAD], [test "x$ac_cv_lib_pthread_pthread_mutex_init" = "xyes" ]) +# FIXME: isn't it able to integrate the followings to AC_CHECK_LIB? +if test x$ac_cv_lib_pthread_pthread_mutex_init = xyes ; then + AC_DEFINE([HAVE_LIBPTHREAD], [1], [Define to 1 if using pthread is enabled.]) +fi + + +dnl --with-tools +AC_ARG_WITH([tools], [AS_HELP_STRING([--with-tools], [build utility tools [default=yes]])], + [build_tools=$withval], [build_tools=yes]) + +AM_CONDITIONAL(BUILD_TOOLS, [test "x$build_tools" = "xyes" ]) +if test x$build_tools = xyes ; then + PKG_CHECK_MODULES(png, "libpng") +fi + +dnl --with-tests +AC_ARG_WITH([tests], [AS_HELP_STRING([--with-tests], [build tests [default=no]])], + [build_tests=$withval], [build_tests=no]) + +AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes" ]) +AH_VERBATIM([tests], +[/* Define to 'static' if no test programs will be compiled. */ +#define __STATIC static +#undef WITH_TESTS + ]) +if test x$build_tests = xyes ; then +echo "#define __STATIC" >>confdefs.h +echo "#define WITH_TESTS 1" >>confdefs.h +else +echo "#define __STATIC static" >>confdefs.h +echo "/* #undef WITH_TESTS */" >>confdefs.h +fi + +if test x$build_tests = xyes ; then + SDL_REQUIRED_VERSION=1.2.0 + AM_PATH_SDL($SDL_REQUIRED_VERSION,,AC_MSG_WARN([*** SDL $SDL_REQUIRED_VERSION or better is required.])) + AC_MSG_NOTICE([SDL check done.]) + AM_ICONV_LINK +fi +AM_CONDITIONAL(HAVE_SDL, [test "x$SDL_CFLAGS" != "x" ]) + + +dnl --enable-gprof +AC_ARG_ENABLE([gprof], [AS_HELP_STRING([--enable-gprof], [generate extra code to write profile information suitable for gprof [default=no]])], + [], [enable_gprof=no]) + +if test x$enable_gprof = xyes; then + CFLAGS="$CFLAGS -g -pg" +fi + + +dnl --enable-gcov +AC_ARG_ENABLE([gcov], [AS_HELP_STRING([--enable-gcov], [generate extra code to write coverage information suitable for gcov [default=no]])], + [], [enable_gcov=no]) + +if test x$enable_gcov = xyes; then + CFLAGS="$CFLAGS --coverage" +fi + + +dnl --enable-mudflap +AC_ARG_ENABLE([mudflap], [AS_HELP_STRING([--enable-mudflap], [generate extra code to check memory leaks [default=no]])], + [], [enable_mudflap=no]) + +if test x$enable_mudflap = xyes; then + if test x$enable_thread_safety = xyes; then + CFLAGS="$CFLAGS -fmudflapth" + LDFLAGS="$LDFLAGS -lmudflapth" + else + CFLAGS="$CFLAGS -fmudflap" + LDFLAGS="$LDFLAGS -lmudflap" + fi +fi + + +dnl set CFLAGS +CFLAGS="-Wall $CFLAGS" + + +AC_OUTPUT + +echo "" +echo "Options used to compile and link:" +echo " CC = $CC" +echo " CFLAGS = $CFLAGS" +echo " CPPFLAGS = $CPPFLAGS" +echo " CXX = $CXX" +echo " CXXFLAGS = $CXXFLAGS" +echo " LDFLAGS = $LDFLAGS" +echo "" diff --git a/contrib/qrencode-win32/libqrencode.pc.in b/contrib/qrencode-win32/libqrencode.pc.in new file mode 100644 index 0000000..ef6afbd --- /dev/null +++ b/contrib/qrencode-win32/libqrencode.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libqrencode +Description: A QR Code encoding library +Version: @VERSION@ +Libs: -L${libdir} -lqrencode +Libs.private: @LIBPTHREAD@ +Cflags: -I${includedir} diff --git a/contrib/qrencode-win32/mask.c b/contrib/qrencode-win32/mask.c new file mode 100644 index 0000000..47c658c --- /dev/null +++ b/contrib/qrencode-win32/mask.c @@ -0,0 +1,330 @@ +/* + * qrencode - QR Code encoder + * + * Masking. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdlib.h> +#include <string.h> +#include <limits.h> +#include <errno.h> + +#include "qrencode.h" +#include "qrspec.h" +#include "mask.h" + +__STATIC int Mask_writeFormatInformation(int width, unsigned char *frame, int mask, QRecLevel level) +{ + unsigned int format; + unsigned char v; + int i; + int blacks = 0; + + format = QRspec_getFormatInfo(mask, level); + + for(i=0; i<8; i++) { + if(format & 1) { + blacks += 2; + v = 0x85; + } else { + v = 0x84; + } + frame[width * 8 + width - 1 - i] = v; + if(i < 6) { + frame[width * i + 8] = v; + } else { + frame[width * (i + 1) + 8] = v; + } + format= format >> 1; + } + for(i=0; i<7; i++) { + if(format & 1) { + blacks += 2; + v = 0x85; + } else { + v = 0x84; + } + frame[width * (width - 7 + i) + 8] = v; + if(i == 0) { + frame[width * 8 + 7] = v; + } else { + frame[width * 8 + 6 - i] = v; + } + format= format >> 1; + } + + return blacks; +} + +/** + * Demerit coefficients. + * See Section 8.8.2, pp.45, JIS X0510:2004. + */ +#define N1 (3) +#define N2 (3) +#define N3 (40) +#define N4 (10) + +#define MASKMAKER(__exp__) \ + int x, y;\ + int b = 0;\ +\ + for(y=0; y<width; y++) {\ + for(x=0; x<width; x++) {\ + if(*s & 0x80) {\ + *d = *s;\ + } else {\ + *d = *s ^ ((__exp__) == 0);\ + }\ + b += (int)(*d & 1);\ + s++; d++;\ + }\ + }\ + return b; + +static int Mask_mask0(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER((x+y)&1) +} + +static int Mask_mask1(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER(y&1) +} + +static int Mask_mask2(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER(x%3) +} + +static int Mask_mask3(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER((x+y)%3) +} + +static int Mask_mask4(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER(((y/2)+(x/3))&1) +} + +static int Mask_mask5(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER(((x*y)&1)+(x*y)%3) +} + +static int Mask_mask6(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER((((x*y)&1)+(x*y)%3)&1) +} + +static int Mask_mask7(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER((((x*y)%3)+((x+y)&1))&1) +} + +#define maskNum (8) +typedef int MaskMaker(int, const unsigned char *, unsigned char *); +static MaskMaker *maskMakers[maskNum] = { + Mask_mask0, Mask_mask1, Mask_mask2, Mask_mask3, + Mask_mask4, Mask_mask5, Mask_mask6, Mask_mask7 +}; + +#ifdef WITH_TESTS +unsigned char *Mask_makeMaskedFrame(int width, unsigned char *frame, int mask) +{ + unsigned char *masked; + + masked = (unsigned char *)malloc(width * width); + if(masked == NULL) return NULL; + + maskMakers[mask](width, frame, masked); + + return masked; +} +#endif + +unsigned char *Mask_makeMask(int width, unsigned char *frame, int mask, QRecLevel level) +{ + unsigned char *masked; + + if(mask < 0 || mask >= maskNum) { + errno = EINVAL; + return NULL; + } + + masked = (unsigned char *)malloc(width * width); + if(masked == NULL) return NULL; + + maskMakers[mask](width, frame, masked); + Mask_writeFormatInformation(width, masked, mask, level); + + return masked; +} + + +//static int n1; +//static int n2; +//static int n3; +//static int n4; + +__STATIC int Mask_calcN1N3(int length, int *runLength) +{ + int i; + int demerit = 0; + int fact; + + for(i=0; i<length; i++) { + if(runLength[i] >= 5) { + demerit += N1 + (runLength[i] - 5); + //n1 += N1 + (runLength[i] - 5); + } + if((i & 1)) { + if(i >= 3 && i < length-2 && (runLength[i] % 3) == 0) { + fact = runLength[i] / 3; + if(runLength[i-2] == fact && + runLength[i-1] == fact && + runLength[i+1] == fact && + runLength[i+2] == fact) { + if(i == 3 || runLength[i-3] >= 4 * fact) { + demerit += N3; + //n3 += N3; + } else if(i+4 >= length || runLength[i+3] >= 4 * fact) { + demerit += N3; + //n3 += N3; + } + } + } + } + } + + return demerit; +} + +__STATIC int Mask_calcN2(int width, unsigned char *frame) +{ + int x, y; + unsigned char *p; + unsigned char b22, w22; + int demerit = 0; + + p = frame + width + 1; + for(y=1; y<width; y++) { + for(x=1; x<width; x++) { + b22 = p[0] & p[-1] & p[-width] & p [-width-1]; + w22 = p[0] | p[-1] | p[-width] | p [-width-1]; + if((b22 | (w22 ^ 1))&1) { + demerit += N2; + } + p++; + } + p++; + } + + return demerit; +} + +__STATIC int Mask_calcRunLength(int width, unsigned char *frame, int dir, int *runLength) +{ + int head; + int i; + unsigned char *p; + int pitch; + + pitch = (dir==0)?1:width; + if(frame[0] & 1) { + runLength[0] = -1; + head = 1; + } else { + head = 0; + } + runLength[head] = 1; + p = frame + pitch; + + for(i=1; i<width; i++) { + if((p[0] ^ p[-pitch]) & 1) { + head++; + runLength[head] = 1; + } else { + runLength[head]++; + } + p += pitch; + } + + return head + 1; +} + +__STATIC int Mask_evaluateSymbol(int width, unsigned char *frame) +{ + int x, y; + int demerit = 0; + int runLength[QRSPEC_WIDTH_MAX + 1]; + int length; + + demerit += Mask_calcN2(width, frame); + + for(y=0; y<width; y++) { + length = Mask_calcRunLength(width, frame + y * width, 0, runLength); + demerit += Mask_calcN1N3(length, runLength); + } + + for(x=0; x<width; x++) { + length = Mask_calcRunLength(width, frame + x, 1, runLength); + demerit += Mask_calcN1N3(length, runLength); + } + + return demerit; +} + +unsigned char *Mask_mask(int width, unsigned char *frame, QRecLevel level) +{ + int i; + unsigned char *mask, *bestMask; + int minDemerit = INT_MAX; + int blacks; + int bratio; + int demerit; + int w2 = width * width; + + mask = (unsigned char *)malloc(w2); + if(mask == NULL) return NULL; + bestMask = NULL; + + for(i=0; i<maskNum; i++) { +// n1 = n2 = n3 = n4 = 0; + demerit = 0; + blacks = maskMakers[i](width, frame, mask); + blacks += Mask_writeFormatInformation(width, mask, i, level); + bratio = (200 * blacks + w2) / w2 / 2; /* (int)(100*blacks/w2+0.5) */ + demerit = (abs(bratio - 50) / 5) * N4; +// n4 = demerit; + demerit += Mask_evaluateSymbol(width, mask); +// printf("(%d,%d,%d,%d)=%d\n", n1, n2, n3 ,n4, demerit); + if(demerit < minDemerit) { + minDemerit = demerit; + free(bestMask); + bestMask = mask; + mask = (unsigned char *)malloc(w2); + if(mask == NULL) break; + } + } + free(mask); + return bestMask; +} diff --git a/contrib/qrencode-win32/mask.h b/contrib/qrencode-win32/mask.h new file mode 100644 index 0000000..d9e1e5d --- /dev/null +++ b/contrib/qrencode-win32/mask.h @@ -0,0 +1,37 @@ +/* + * qrencode - QR Code encoder + * + * Masking. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __MASK_H__ +#define __MASK_H__ + +extern unsigned char *Mask_makeMask(int width, unsigned char *frame, int mask, QRecLevel level); +extern unsigned char *Mask_mask(int width, unsigned char *frame, QRecLevel level); + +#ifdef WITH_TESTS +extern int Mask_calcN2(int width, unsigned char *frame); +extern int Mask_calcN1N3(int length, int *runLength); +extern int Mask_calcRunLength(int width, unsigned char *frame, int dir, int *runLength); +extern int Mask_evaluateSymbol(int width, unsigned char *frame); +extern int Mask_writeFormatInformation(int width, unsigned char *frame, int mask, QRecLevel level); +extern unsigned char *Mask_makeMaskedFrame(int width, unsigned char *frame, int mask); +#endif + +#endif /* __MASK_H__ */ diff --git a/contrib/qrencode-win32/mmask.c b/contrib/qrencode-win32/mmask.c new file mode 100644 index 0000000..99470f2 --- /dev/null +++ b/contrib/qrencode-win32/mmask.c @@ -0,0 +1,177 @@ +/* + * qrencode - QR Code encoder + * + * Masking for Micro QR Code. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdlib.h> +#include <string.h> +#include <limits.h> +#include <errno.h> + +#include "qrencode.h" +#include "mqrspec.h" +#include "mmask.h" + +__STATIC void MMask_writeFormatInformation(int version, int width, unsigned char *frame, int mask, QRecLevel level) +{ + unsigned int format; + unsigned char v; + int i; + + format = MQRspec_getFormatInfo(mask, version, level); + + for(i=0; i<8; i++) { + v = 0x84 | (format & 1); + frame[width * (i + 1) + 8] = v; + format = format >> 1; + } + for(i=0; i<7; i++) { + v = 0x84 | (format & 1); + frame[width * 8 + 7 - i] = v; + format = format >> 1; + } +} + +#define MASKMAKER(__exp__) \ + int x, y;\ +\ + for(y=0; y<width; y++) {\ + for(x=0; x<width; x++) {\ + if(*s & 0x80) {\ + *d = *s;\ + } else {\ + *d = *s ^ ((__exp__) == 0);\ + }\ + s++; d++;\ + }\ + } + +static void Mask_mask0(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER(y&1) +} + +static void Mask_mask1(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER(((y/2)+(x/3))&1) +} + +static void Mask_mask2(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER((((x*y)&1)+(x*y)%3)&1) +} + +static void Mask_mask3(int width, const unsigned char *s, unsigned char *d) +{ + MASKMAKER((((x+y)&1)+((x*y)%3))&1) +} + +#define maskNum (4) +typedef void MaskMaker(int, const unsigned char *, unsigned char *); +static MaskMaker *maskMakers[maskNum] = { + Mask_mask0, Mask_mask1, Mask_mask2, Mask_mask3 +}; + +#ifdef WITH_TESTS +unsigned char *MMask_makeMaskedFrame(int width, unsigned char *frame, int mask) +{ + unsigned char *masked; + + masked = (unsigned char *)malloc(width * width); + if(masked == NULL) return NULL; + + maskMakers[mask](width, frame, masked); + + return masked; +} +#endif + +unsigned char *MMask_makeMask(int version, unsigned char *frame, int mask, QRecLevel level) +{ + unsigned char *masked; + int width; + + if(mask < 0 || mask >= maskNum) { + errno = EINVAL; + return NULL; + } + + width = MQRspec_getWidth(version); + masked = (unsigned char *)malloc(width * width); + if(masked == NULL) return NULL; + + maskMakers[mask](width, frame, masked); + MMask_writeFormatInformation(version, width, masked, mask, level); + + return masked; +} + +__STATIC int MMask_evaluateSymbol(int width, unsigned char *frame) +{ + int x, y; + unsigned char *p; + int sum1 = 0, sum2 = 0; + + p = frame + width * (width - 1); + for(x=1; x<width; x++) { + sum1 += (p[x] & 1); + } + + p = frame + width * 2 - 1; + for(y=1; y<width; y++) { + sum2 += (*p & 1); + p += width; + } + + return (sum1 <= sum2)?(sum1 * 16 + sum2):(sum2 * 16 + sum1); +} + +unsigned char *MMask_mask(int version, unsigned char *frame, QRecLevel level) +{ + int i; + unsigned char *mask, *bestMask; + int maxScore = 0; + int score; + int width; + + width = MQRspec_getWidth(version); + + mask = (unsigned char *)malloc(width * width); + if(mask == NULL) return NULL; + bestMask = NULL; + + for(i=0; i<maskNum; i++) { + score = 0; + maskMakers[i](width, frame, mask); + MMask_writeFormatInformation(version, width, mask, i, level); + score = MMask_evaluateSymbol(width, mask); + if(score > maxScore) { + maxScore = score; + free(bestMask); + bestMask = mask; + mask = (unsigned char *)malloc(width * width); + if(mask == NULL) break; + } + } + free(mask); + return bestMask; +} diff --git a/contrib/qrencode-win32/mmask.h b/contrib/qrencode-win32/mmask.h new file mode 100644 index 0000000..f6556e8 --- /dev/null +++ b/contrib/qrencode-win32/mmask.h @@ -0,0 +1,34 @@ +/* + * qrencode - QR Code encoder + * + * Masking for Micro QR Code. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __MMASK_H__ +#define __MMASK_H__ + +extern unsigned char *MMask_makeMask(int version, unsigned char *frame, int mask, QRecLevel level); +extern unsigned char *MMask_mask(int version, unsigned char *frame, QRecLevel level); + +#ifdef WITH_TESTS +extern int MMask_evaluateSymbol(int width, unsigned char *frame); +extern void MMask_writeFormatInformation(int version, int width, unsigned char *frame, int mask, QRecLevel level); +extern unsigned char *MMask_makeMaskedFrame(int width, unsigned char *frame, int mask); +#endif + +#endif /* __MMASK_H__ */ diff --git a/contrib/qrencode-win32/mqrspec.c b/contrib/qrencode-win32/mqrspec.c new file mode 100644 index 0000000..76d2d26 --- /dev/null +++ b/contrib/qrencode-win32/mqrspec.c @@ -0,0 +1,280 @@ +/* + * qrencode - QR Code encoder + * + * Micor QR Code specification in convenient format. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * The following data / specifications are taken from + * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004) + * or + * "Automatic identification and data capture techniques -- + * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#ifdef HAVE_LIBPTHREAD +#include <pthread.h> +#endif + +#include "mqrspec.h" + +/****************************************************************************** + * Version and capacity + *****************************************************************************/ + +typedef struct { + int width; //< Edge length of the symbol + int ec[4]; //< Number of ECC code (bytes) +} MQRspec_Capacity; + +/** + * Table of the capacity of symbols + * See Table 1 (pp.106) and Table 8 (pp.113) of Appendix 1, JIS X0510:2004. + */ +static const MQRspec_Capacity mqrspecCapacity[MQRSPEC_VERSION_MAX + 1] = { + { 0, {0, 0, 0, 0}}, + { 11, {2, 0, 0, 0}}, + { 13, {5, 6, 0, 0}}, + { 15, {6, 8, 0, 0}}, + { 17, {8, 10, 14, 0}} +}; + +int MQRspec_getDataLengthBit(int version, QRecLevel level) +{ + int w; + int ecc; + + w = mqrspecCapacity[version].width - 1; + ecc = mqrspecCapacity[version].ec[level]; + if(ecc == 0) return 0; + return w * w - 64 - ecc * 8; +} + +int MQRspec_getDataLength(int version, QRecLevel level) +{ + return (MQRspec_getDataLengthBit(version, level) + 4) / 8; +} + +int MQRspec_getECCLength(int version, QRecLevel level) +{ + return mqrspecCapacity[version].ec[level]; +} + +int MQRspec_getWidth(int version) +{ + return mqrspecCapacity[version].width; +} + +/****************************************************************************** + * Length indicator + *****************************************************************************/ + +/** + * See Table 3 (pp.107) of Appendix 1, JIS X0510:2004. + */ +static const int lengthTableBits[4][4] = { + { 3, 4, 5, 6}, + { 0, 3, 4, 5}, + { 0, 0, 4, 5}, + { 0, 0, 3, 4} +}; + +int MQRspec_lengthIndicator(QRencodeMode mode, int version) +{ + return lengthTableBits[mode][version - 1]; +} + +int MQRspec_maximumWords(QRencodeMode mode, int version) +{ + int bits; + int words; + + bits = lengthTableBits[mode][version - 1]; + words = (1 << bits) - 1; + if(mode == QR_MODE_KANJI) { + words *= 2; // the number of bytes is required + } + + return words; +} + +/****************************************************************************** + * Format information + *****************************************************************************/ + +/* See calcFormatInfo in tests/test_mqrspec.c */ +static const unsigned int formatInfo[4][8] = { + {0x4445, 0x55ae, 0x6793, 0x7678, 0x06de, 0x1735, 0x2508, 0x34e3}, + {0x4172, 0x5099, 0x62a4, 0x734f, 0x03e9, 0x1202, 0x203f, 0x31d4}, + {0x4e2b, 0x5fc0, 0x6dfd, 0x7c16, 0x0cb0, 0x1d5b, 0x2f66, 0x3e8d}, + {0x4b1c, 0x5af7, 0x68ca, 0x7921, 0x0987, 0x186c, 0x2a51, 0x3bba} +}; + +/* See Table 10 of Appendix 1. (pp.115) */ +static const int typeTable[MQRSPEC_VERSION_MAX + 1][3] = { + {-1, -1, -1}, + { 0, -1, -1}, + { 1, 2, -1}, + { 3, 4, -1}, + { 5, 6, 7} +}; + +unsigned int MQRspec_getFormatInfo(int mask, int version, QRecLevel level) +{ + int type; + + if(mask < 0 || mask > 3) return 0; + if(version <= 0 || version > MQRSPEC_VERSION_MAX) return 0; + if(level == QR_ECLEVEL_H) return 0; + type = typeTable[version][level]; + if(type < 0) return 0; + + return formatInfo[mask][type]; +} + +/****************************************************************************** + * Frame + *****************************************************************************/ + +/** + * Cache of initial frames. + */ +/* C99 says that static storage shall be initialized to a null pointer + * by compiler. */ +static unsigned char *frames[MQRSPEC_VERSION_MAX + 1]; +#ifdef HAVE_LIBPTHREAD +static pthread_mutex_t frames_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif + +/** + * Put a finder pattern. + * @param frame + * @param width + * @param ox,oy upper-left coordinate of the pattern + */ +static void putFinderPattern(unsigned char *frame, int width, int ox, int oy) +{ + static const unsigned char finder[] = { + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, + 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, + 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, + 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, + 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + }; + int x, y; + const unsigned char *s; + + frame += oy * width + ox; + s = finder; + for(y=0; y<7; y++) { + for(x=0; x<7; x++) { + frame[x] = s[x]; + } + frame += width; + s += 7; + } +} + +static unsigned char *MQRspec_createFrame(int version) +{ + unsigned char *frame, *p, *q; + int width; + int x, y; + + width = mqrspecCapacity[version].width; + frame = (unsigned char *)malloc(width * width); + if(frame == NULL) return NULL; + + memset(frame, 0, width * width); + /* Finder pattern */ + putFinderPattern(frame, width, 0, 0); + /* Separator */ + p = frame; + for(y=0; y<7; y++) { + p[7] = 0xc0; + p += width; + } + memset(frame + width * 7, 0xc0, 8); + /* Mask format information area */ + memset(frame + width * 8 + 1, 0x84, 8); + p = frame + width + 8; + for(y=0; y<7; y++) { + *p = 0x84; + p += width; + } + /* Timing pattern */ + p = frame + 8; + q = frame + width * 8; + for(x=1; x<width-7; x++) { + *p = 0x90 | (x & 1); + *q = 0x90 | (x & 1); + p++; + q += width; + } + + return frame; +} + +unsigned char *MQRspec_newFrame(int version) +{ + unsigned char *frame; + int width; + + if(version < 1 || version > MQRSPEC_VERSION_MAX) return NULL; + +#ifdef HAVE_LIBPTHREAD + pthread_mutex_lock(&frames_mutex); +#endif + if(frames[version] == NULL) { + frames[version] = MQRspec_createFrame(version); + } +#ifdef HAVE_LIBPTHREAD + pthread_mutex_unlock(&frames_mutex); +#endif + if(frames[version] == NULL) return NULL; + + width = mqrspecCapacity[version].width; + frame = (unsigned char *)malloc(width * width); + if(frame == NULL) return NULL; + memcpy(frame, frames[version], width * width); + + return frame; +} + +void MQRspec_clearCache(void) +{ + int i; + +#ifdef HAVE_LIBPTHREAD + pthread_mutex_lock(&frames_mutex); +#endif + for(i=1; i<=MQRSPEC_VERSION_MAX; i++) { + free(frames[i]); + frames[i] = NULL; + } +#ifdef HAVE_LIBPTHREAD + pthread_mutex_unlock(&frames_mutex); +#endif +} diff --git a/contrib/qrencode-win32/mqrspec.h b/contrib/qrencode-win32/mqrspec.h new file mode 100644 index 0000000..2d4b90d --- /dev/null +++ b/contrib/qrencode-win32/mqrspec.h @@ -0,0 +1,157 @@ +/* + * qrencode - QR Code encoder + * + * Micro QR Code specification in convenient format. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __MQRSPEC_H__ +#define __MQRSPEC_H__ + +#include "qrencode.h" + +/****************************************************************************** + * Version and capacity + *****************************************************************************/ + +/** + * Maximum width of a symbol + */ +#define MQRSPEC_WIDTH_MAX 17 + +/** + * Return maximum data code length (bits) for the version. + * @param version + * @param level + * @return maximum size (bits) + */ +extern int MQRspec_getDataLengthBit(int version, QRecLevel level); + +/** + * Return maximum data code length (bytes) for the version. + * @param version + * @param level + * @return maximum size (bytes) + */ +extern int MQRspec_getDataLength(int version, QRecLevel level); + +/** + * Return maximum error correction code length (bytes) for the version. + * @param version + * @param level + * @return ECC size (bytes) + */ +extern int MQRspec_getECCLength(int version, QRecLevel level); + +/** + * Return a version number that satisfies the input code length. + * @param size input code length (byte) + * @param level + * @return version number + */ +extern int MQRspec_getMinimumVersion(int size, QRecLevel level); + +/** + * Return the width of the symbol for the version. + * @param version + * @return width + */ +extern int MQRspec_getWidth(int version); + +/** + * Return the numer of remainder bits. + * @param version + * @return number of remainder bits + */ +extern int MQRspec_getRemainder(int version); + +/****************************************************************************** + * Length indicator + *****************************************************************************/ + +/** + * Return the size of lenght indicator for the mode and version. + * @param mode + * @param version + * @return the size of the appropriate length indicator (bits). + */ +extern int MQRspec_lengthIndicator(QRencodeMode mode, int version); + +/** + * Return the maximum length for the mode and version. + * @param mode + * @param version + * @return the maximum length (bytes) + */ +extern int MQRspec_maximumWords(QRencodeMode mode, int version); + +/****************************************************************************** + * Version information pattern + *****************************************************************************/ + +/** + * Return BCH encoded version information pattern that is used for the symbol + * of version 7 or greater. Use lower 18 bits. + * @param version + * @return BCH encoded version information pattern + */ +extern unsigned int MQRspec_getVersionPattern(int version); + +/****************************************************************************** + * Format information + *****************************************************************************/ + +/** + * Return BCH encoded format information pattern. + * @param mask + * @param version + * @param level + * @return BCH encoded format information pattern + */ +extern unsigned int MQRspec_getFormatInfo(int mask, int version, QRecLevel level); + +/****************************************************************************** + * Frame + *****************************************************************************/ + +/** + * Return a copy of initialized frame. + * When the same version is requested twice or more, a copy of cached frame + * is returned. + * @param version + * @return Array of unsigned char. You can free it by free(). + */ +extern unsigned char *MQRspec_newFrame(int version); + +/** + * Clear the frame cache. Typically for debug. + */ +extern void MQRspec_clearCache(void); + +/****************************************************************************** + * Mode indicator + *****************************************************************************/ + +/** + * Mode indicator. See Table 2 in Appendix 1 of JIS X0510:2004, pp.107. + */ +#define MQRSPEC_MODEID_NUM 0 +#define MQRSPEC_MODEID_AN 1 +#define MQRSPEC_MODEID_8 2 +#define MQRSPEC_MODEID_KANJI 3 + +#endif /* __MQRSPEC_H__ */ diff --git a/contrib/qrencode-win32/qrenc.c b/contrib/qrencode-win32/qrenc.c new file mode 100644 index 0000000..ba6446c --- /dev/null +++ b/contrib/qrencode-win32/qrenc.c @@ -0,0 +1,1191 @@ +/** + * qrencode - QR Code encoder + * + * QR Code encoding tool + * Copyright (C) 2006-2013 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <png.h> +#include <getopt.h> +#include <fcntl.h> +#include <io.h> + +#include "qrencode.h" + +#define INCHES_PER_METER (100.0/2.54) + +static int casesensitive = 1; +static int eightbit = 0; +static int version = 0; +static int size = 3; +static int margin = -1; +static int dpi = 72; +static int structured = 0; +static int rle = 0; +static int micro = 0; +static QRecLevel level = QR_ECLEVEL_L; +static QRencodeMode hint = QR_MODE_8; +static unsigned int fg_color[4] = {0, 0, 0, 255}; +static unsigned int bg_color[4] = {255, 255, 255, 255}; + +static int verbose = 0; + +enum imageType { + PNG_TYPE, + EPS_TYPE, + SVG_TYPE, + ANSI_TYPE, + ANSI256_TYPE, + ASCII_TYPE, + ASCIIi_TYPE, + UTF8_TYPE, + ANSIUTF8_TYPE +}; + +static enum imageType image_type = PNG_TYPE; + +static const struct option options[] = { + {"help" , no_argument , NULL, 'h'}, + {"output" , required_argument, NULL, 'o'}, + {"level" , required_argument, NULL, 'l'}, + {"size" , required_argument, NULL, 's'}, + {"symversion" , required_argument, NULL, 'v'}, + {"margin" , required_argument, NULL, 'm'}, + {"dpi" , required_argument, NULL, 'd'}, + {"type" , required_argument, NULL, 't'}, + {"structured" , no_argument , NULL, 'S'}, + {"kanji" , no_argument , NULL, 'k'}, + {"casesensitive", no_argument , NULL, 'c'}, + {"ignorecase" , no_argument , NULL, 'i'}, + {"8bit" , no_argument , NULL, '8'}, + {"rle" , no_argument , &rle, 1}, + {"micro" , no_argument , NULL, 'M'}, + {"foreground" , required_argument, NULL, 'f'}, + {"background" , required_argument, NULL, 'b'}, + {"version" , no_argument , NULL, 'V'}, + {"verbose" , no_argument , &verbose, 1}, + {NULL, 0, NULL, 0} +}; + +static char *optstring = "ho:l:s:v:m:d:t:Skci8MV"; + +static void usage(int help, int longopt) +{ + fprintf(stderr, +"qrencode version %s\n" +"Copyright (C) 2006-2012 Kentaro Fukuchi\n", QRcode_APIVersionString()); + if(help) { + if(longopt) { + fprintf(stderr, +"Usage: qrencode [OPTION]... [STRING]\n" +"Encode input data in a QR Code and save as a PNG or EPS image.\n\n" +" -h, --help display the help message. -h displays only the help of short\n" +" options.\n\n" +" -o FILENAME, --output=FILENAME\n" +" write image to FILENAME. If '-' is specified, the result\n" +" will be output to standard output. If -S is given, structured\n" +" symbols are written to FILENAME-01.png, FILENAME-02.png, ...\n" +" (suffix is removed from FILENAME, if specified)\n" +" -s NUMBER, --size=NUMBER\n" +" specify module size in dots (pixels). (default=3)\n\n" +" -l {LMQH}, --level={LMQH}\n" +" specify error correction level from L (lowest) to H (highest).\n" +" (default=L)\n\n" +" -v NUMBER, --symversion=NUMBER\n" +" specify the version of the symbol. See SYMBOL VERSIONS for more\n" +" information. (default=auto)\n\n" +" -m NUMBER, --margin=NUMBER\n" +" specify the width of the margins. (default=4 (2 for Micro QR)))\n\n" +" -d NUMBER, --dpi=NUMBER\n" +" specify the DPI of the generated PNG. (default=72)\n\n" +" -t {PNG,EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}, --type={PNG,EPS,\n" +" SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}\n" +" specify the type of the generated image. (default=PNG)\n\n" +" -S, --structured\n" +" make structured symbols. Version must be specified.\n\n" +" -k, --kanji assume that the input text contains kanji (shift-jis).\n\n" +" -c, --casesensitive\n" +" encode lower-case alphabet characters in 8-bit mode. (default)\n\n" +" -i, --ignorecase\n" +" ignore case distinctions and use only upper-case characters.\n\n" +" -8, --8bit encode entire data in 8-bit mode. -k, -c and -i will be ignored.\n\n" +" --rle enable run-length encoding for SVG.\n\n" +" -M, --micro encode in a Micro QR Code. (experimental)\n\n" +" --foreground=RRGGBB[AA]\n" +" --background=RRGGBB[AA]\n" +" specify foreground/background color in hexadecimal notation.\n" +" 6-digit (RGB) or 8-digit (RGBA) form are supported.\n" +" Color output support available only in PNG and SVG.\n" +" -V, --version\n" +" display the version number and copyrights of the qrencode.\n\n" +" --verbose\n" +" display verbose information to stderr.\n\n" +" [STRING] input data. If it is not specified, data will be taken from\n" +" standard input.\n\n" +"*SYMBOL VERSIONS\n" +" The symbol versions of QR Code range from Version 1 to Version\n" +" 40. Each version has a different module configuration or number\n" +" of modules, ranging from Version 1 (21 x 21 modules) up to\n" +" Version 40 (177 x 177 modules). Each higher version number\n" +" comprises 4 additional modules per side by default. See\n" +" http://www.qrcode.com/en/about/version.html for a detailed\n" +" version list.\n" + + ); + } else { + fprintf(stderr, +"Usage: qrencode [OPTION]... [STRING]\n" +"Encode input data in a QR Code and save as a PNG or EPS image.\n\n" +" -h display this message.\n" +" --help display the usage of long options.\n" +" -o FILENAME write image to FILENAME. If '-' is specified, the result\n" +" will be output to standard output. If -S is given, structured\n" +" symbols are written to FILENAME-01.png, FILENAME-02.png, ...\n" +" (suffix is removed from FILENAME, if specified)\n" +" -s NUMBER specify module size in dots (pixels). (default=3)\n" +" -l {LMQH} specify error correction level from L (lowest) to H (highest).\n" +" (default=L)\n" +" -v NUMBER specify the version of the symbol. (default=auto)\n" +" -m NUMBER specify the width of the margins. (default=4 (2 for Micro))\n" +" -d NUMBER specify the DPI of the generated PNG. (default=72)\n" +" -t {PNG,EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}\n" +" specify the type of the generated image. (default=PNG)\n" +" -S make structured symbols. Version must be specified.\n" +" -k assume that the input text contains kanji (shift-jis).\n" +" -c encode lower-case alphabet characters in 8-bit mode. (default)\n" +" -i ignore case distinctions and use only upper-case characters.\n" +" -8 encode entire data in 8-bit mode. -k, -c and -i will be ignored.\n" +" -M encode in a Micro QR Code.\n" +" --foreground=RRGGBB[AA]\n" +" --background=RRGGBB[AA]\n" +" specify foreground/background color in hexadecimal notation.\n" +" 6-digit (RGB) or 8-digit (RGBA) form are supported.\n" +" Color output support available only in PNG and SVG.\n" +" -V display the version number and copyrights of the qrencode.\n" +" [STRING] input data. If it is not specified, data will be taken from\n" +" standard input.\n" + ); + } + } +} + +static int color_set(unsigned int color[4], const char *value) +{ + int len = strlen(value); + int count; + if(len == 6) { + count = sscanf(value, "%02x%02x%02x%n", &color[0], &color[1], &color[2], &len); + if(count < 3 || len != 6) { + return -1; + } + color[3] = 255; + } else if(len == 8) { + count = sscanf(value, "%02x%02x%02x%02x%n", &color[0], &color[1], &color[2], &color[3], &len); + if(count < 4 || len != 8) { + return -1; + } + } else { + return -1; + } + return 0; +} + +#define MAX_DATA_SIZE (7090 * 16) /* from the specification */ +static unsigned char *readStdin(int *length) +{ + unsigned char *buffer; + int ret; + + buffer = (unsigned char *)malloc(MAX_DATA_SIZE + 1); + if(buffer == NULL) { + fprintf(stderr, "Memory allocation failed.\n"); + exit(EXIT_FAILURE); + } + ret = fread(buffer, 1, MAX_DATA_SIZE, stdin); + if(ret == 0) { + fprintf(stderr, "No input data.\n"); + exit(EXIT_FAILURE); + } + if(feof(stdin) == 0) { + fprintf(stderr, "Input data is too large.\n"); + exit(EXIT_FAILURE); + } + + buffer[ret] = '\0'; + *length = ret; + + return buffer; +} + +static FILE *openFile(const char *outfile) +{ + FILE *fp; + + if(outfile == NULL || (outfile[0] == '-' && outfile[1] == '\0')) { + fp = stdout; + _setmode(_fileno(stdout), O_BINARY); + } else { + fp = fopen(outfile, "wb"); + if(fp == NULL) { + fprintf(stderr, "Failed to create file: %s\n", outfile); + perror(NULL); + exit(EXIT_FAILURE); + } + } + + return fp; +} + +static int writePNG(QRcode *qrcode, const char *outfile) +{ + static FILE *fp; // avoid clobbering by setjmp. + png_structp png_ptr; + png_infop info_ptr; + png_colorp palette; + png_byte alpha_values[2]; + unsigned char *row, *p, *q; + int x, y, xx, yy, bit; + int realwidth; + + realwidth = (qrcode->width + margin * 2) * size; + row = (unsigned char *)malloc((realwidth + 7) / 8); + if(row == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + + if(outfile[0] == '-' && outfile[1] == '\0') { + fp = stdout; + _setmode(_fileno(stdout), O_BINARY); + } else { + fp = fopen(outfile, "wb"); + if(fp == NULL) { + fprintf(stderr, "Failed to create file: %s\n", outfile); + perror(NULL); + exit(EXIT_FAILURE); + } + } + + png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if(png_ptr == NULL) { + fprintf(stderr, "Failed to initialize PNG writer.\n"); + exit(EXIT_FAILURE); + } + + info_ptr = png_create_info_struct(png_ptr); + if(info_ptr == NULL) { + fprintf(stderr, "Failed to initialize PNG write.\n"); + exit(EXIT_FAILURE); + } + + if(setjmp(png_jmpbuf(png_ptr))) { + png_destroy_write_struct(&png_ptr, &info_ptr); + fprintf(stderr, "Failed to write PNG image.\n"); + exit(EXIT_FAILURE); + } + + palette = (png_colorp) malloc(sizeof(png_color) * 2); + if(palette == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + palette[0].red = fg_color[0]; + palette[0].green = fg_color[1]; + palette[0].blue = fg_color[2]; + palette[1].red = bg_color[0]; + palette[1].green = bg_color[1]; + palette[1].blue = bg_color[2]; + alpha_values[0] = fg_color[3]; + alpha_values[1] = bg_color[3]; + png_set_PLTE(png_ptr, info_ptr, palette, 2); + png_set_tRNS(png_ptr, info_ptr, alpha_values, 2, NULL); + + png_init_io(png_ptr, fp); + png_set_IHDR(png_ptr, info_ptr, + realwidth, realwidth, + 1, + PNG_COLOR_TYPE_PALETTE, + PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + png_set_pHYs(png_ptr, info_ptr, + dpi * INCHES_PER_METER, + dpi * INCHES_PER_METER, + PNG_RESOLUTION_METER); + png_write_info(png_ptr, info_ptr); + + /* top margin */ + memset(row, 0xff, (realwidth + 7) / 8); + for(y=0; y<margin * size; y++) { + png_write_row(png_ptr, row); + } + + /* data */ + p = qrcode->data; + for(y=0; y<qrcode->width; y++) { + bit = 7; + memset(row, 0xff, (realwidth + 7) / 8); + q = row; + q += margin * size / 8; + bit = 7 - (margin * size % 8); + for(x=0; x<qrcode->width; x++) { + for(xx=0; xx<size; xx++) { + *q ^= (*p & 1) << bit; + bit--; + if(bit < 0) { + q++; + bit = 7; + } + } + p++; + } + for(yy=0; yy<size; yy++) { + png_write_row(png_ptr, row); + } + } + /* bottom margin */ + memset(row, 0xff, (realwidth + 7) / 8); + for(y=0; y<margin * size; y++) { + png_write_row(png_ptr, row); + } + + png_write_end(png_ptr, info_ptr); + png_destroy_write_struct(&png_ptr, &info_ptr); + + fclose(fp); + free(row); + free(palette); + + return 0; +} + +static int writeEPS(QRcode *qrcode, const char *outfile) +{ + FILE *fp; + unsigned char *row, *p; + int x, y, yy; + int realwidth; + + fp = openFile(outfile); + + realwidth = (qrcode->width + margin * 2) * size; + /* EPS file header */ + fprintf(fp, "%%!PS-Adobe-2.0 EPSF-1.2\n" + "%%%%BoundingBox: 0 0 %d %d\n" + "%%%%Pages: 1 1\n" + "%%%%EndComments\n", realwidth, realwidth); + /* draw point */ + fprintf(fp, "/p { " + "moveto " + "0 1 rlineto " + "1 0 rlineto " + "0 -1 rlineto " + "fill " + "} bind def " + "%d %d scale ", size, size); + + /* data */ + p = qrcode->data; + for(y=0; y<qrcode->width; y++) { + row = (p+(y*qrcode->width)); + yy = (margin + qrcode->width - y - 1); + + for(x=0; x<qrcode->width; x++) { + if(*(row+x)&0x1) { + fprintf(fp, "%d %d p ", margin + x, yy); + } + } + } + + fprintf(fp, "\n%%%%EOF\n"); + fclose(fp); + + return 0; +} + +static void writeSVG_writeRect(FILE *fp, int x, int y, int width, char* col, float opacity) +{ + if(fg_color[3] != 255) { + fprintf(fp, "\t\t\t<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"1\" "\ + "fill=\"#%s\" fill-opacity=\"%f\" />\n", + x, y, width, col, opacity ); + } else { + fprintf(fp, "\t\t\t<rect x=\"%d\" y=\"%d\" width=\"%d\" height=\"1\" "\ + "fill=\"#%s\" />\n", + x, y, width, col ); + } +} + +static int writeSVG( QRcode *qrcode, const char *outfile ) +{ + FILE *fp; + unsigned char *row, *p; + int x, y, x0, pen; + int symwidth, realwidth; + float scale; + char fg[7], bg[7]; + float fg_opacity; + float bg_opacity; + + fp = openFile(outfile); + + scale = dpi * INCHES_PER_METER / 100.0; + + symwidth = qrcode->width + margin * 2; + realwidth = symwidth * size; + + snprintf(fg, 7, "%02x%02x%02x", fg_color[0], fg_color[1], fg_color[2]); + snprintf(bg, 7, "%02x%02x%02x", bg_color[0], bg_color[1], bg_color[2]); + fg_opacity = (float)fg_color[3] / 255; + bg_opacity = (float)bg_color[3] / 255; + + /* XML declaration */ + fputs( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n", fp ); + + /* DTD + No document type specified because "while a DTD is provided in [the SVG] + specification, the use of DTDs for validating XML documents is known to be + problematic. In particular, DTDs do not handle namespaces gracefully. It + is *not* recommended that a DOCTYPE declaration be included in SVG + documents." + http://www.w3.org/TR/2003/REC-SVG11-20030114/intro.html#Namespace + */ + + /* Vanity remark */ + fprintf( fp, "<!-- Created with qrencode %s (http://fukuchi.org/works/qrencode/index.html.en) -->\n", + QRcode_APIVersionString() ); + + /* SVG code start */ + fprintf( fp, "<svg width=\"%0.2fcm\" height=\"%0.2fcm\" viewBox=\"0 0 %d %d\""\ + " preserveAspectRatio=\"none\" version=\"1.1\""\ + " xmlns=\"http://www.w3.org/2000/svg\">\n", + realwidth / scale, realwidth / scale, symwidth, symwidth + ); + + /* Make named group */ + fputs( "\t<g id=\"QRcode\">\n", fp ); + + /* Make solid background */ + if(bg_color[3] != 255) { + fprintf(fp, "\t\t<rect x=\"0\" y=\"0\" width=\"%d\" height=\"%d\" fill=\"#%s\" fill-opacity=\"%f\" />\n", symwidth, symwidth, bg, bg_opacity); + } else { + fprintf(fp, "\t\t<rect x=\"0\" y=\"0\" width=\"%d\" height=\"%d\" fill=\"#%s\" />\n", symwidth, symwidth, bg); + } + + /* Create new viewbox for QR data */ + fputs( "\t\t<g id=\"Pattern\">\n", fp); + + /* Write data */ + p = qrcode->data; + for(y=0; y<qrcode->width; y++) { + row = (p+(y*qrcode->width)); + + if( !rle ) { + /* no RLE */ + for(x=0; x<qrcode->width; x++) { + if(*(row+x)&0x1) { + writeSVG_writeRect(fp, margin + x, + margin + y, 1, + fg, fg_opacity); + } + } + } else { + /* simple RLE */ + pen = 0; + x0 = 0; + for(x=0; x<qrcode->width; x++) { + if( !pen ) { + pen = *(row+x)&0x1; + x0 = x; + } else { + if(!(*(row+x)&0x1)) { + writeSVG_writeRect(fp, x0 + margin, y + margin, x-x0, fg, fg_opacity); + pen = 0; + } + } + } + if( pen ) { + writeSVG_writeRect(fp, x0 + margin, y + margin, qrcode->width - x0, fg, fg_opacity); + } + } + } + /* Close QR data viewbox */ + fputs( "\t\t</g>\n", fp ); + + /* Close group */ + fputs( "\t</g>\n", fp ); + + /* Close SVG code */ + fputs( "</svg>\n", fp ); + fclose( fp ); + + return 0; +} + +static void writeANSI_margin(FILE* fp, int realwidth, + char* buffer, int buffer_s, + char* white, int white_s ) +{ + int y; + + strncpy(buffer, white, white_s); + memset(buffer + white_s, ' ', realwidth * 2); + strcpy(buffer + white_s + realwidth * 2, "\033[0m\n"); // reset to default colors + for(y=0; y<margin; y++ ){ + fputs(buffer, fp); + } +} + +static int writeANSI(QRcode *qrcode, const char *outfile) +{ + FILE *fp; + unsigned char *row, *p; + int x, y; + int realwidth; + int last; + + char *white, *black, *buffer; + int white_s, black_s, buffer_s; + + if( image_type == ANSI256_TYPE ){ + /* codes for 256 color compatible terminals */ + white = "\033[48;5;231m"; + white_s = 11; + black = "\033[48;5;16m"; + black_s = 10; + } else { + white = "\033[47m"; + white_s = 5; + black = "\033[40m"; + black_s = 5; + } + + size = 1; + + fp = openFile(outfile); + + realwidth = (qrcode->width + margin * 2) * size; + buffer_s = ( realwidth * white_s ) * 2; + buffer = (char *)malloc( buffer_s ); + if(buffer == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + + /* top margin */ + writeANSI_margin(fp, realwidth, buffer, buffer_s, white, white_s); + + /* data */ + p = qrcode->data; + for(y=0; y<qrcode->width; y++) { + row = (p+(y*qrcode->width)); + + memset( buffer, 0, buffer_s ); + strncpy( buffer, white, white_s ); + for(x=0; x<margin; x++ ){ + strncat( buffer, " ", 2 ); + } + last = 0; + + for(x=0; x<qrcode->width; x++) { + if(*(row+x)&0x1) { + if( last != 1 ){ + strncat( buffer, black, black_s ); + last = 1; + } + } else { + if( last != 0 ){ + strncat( buffer, white, white_s ); + last = 0; + } + } + strncat( buffer, " ", 2 ); + } + + if( last != 0 ){ + strncat( buffer, white, white_s ); + } + for(x=0; x<margin; x++ ){ + strncat( buffer, " ", 2 ); + } + strncat( buffer, "\033[0m\n", 5 ); + fputs( buffer, fp ); + } + + /* bottom margin */ + writeANSI_margin(fp, realwidth, buffer, buffer_s, white, white_s); + + fclose(fp); + free(buffer); + + return 0; +} + +static void writeUTF8_margin(FILE* fp, int realwidth, + const char* white, const char *reset, + int use_ansi) +{ + int x, y; + + for (y = 0; y < margin/2; y++) { + fputs(white, fp); + for (x = 0; x < realwidth; x++) + fputs("\342\226\210", fp); + fputs(reset, fp); + fputc('\n', fp); + } +} + +static int writeUTF8(QRcode *qrcode, const char *outfile, int use_ansi) +{ + FILE *fp; + int x, y; + int realwidth; + const char *white, *reset; + + if (use_ansi){ + white = "\033[40;37;1m"; + reset = "\033[0m"; + } else { + white = ""; + reset = ""; + } + + fp = openFile(outfile); + + realwidth = (qrcode->width + margin * 2); + + /* top margin */ + writeUTF8_margin(fp, realwidth, white, reset, use_ansi); + + /* data */ + for(y = 0; y < qrcode->width; y += 2) { + unsigned char *row1, *row2; + row1 = qrcode->data + y*qrcode->width; + row2 = row1 + qrcode->width; + + fputs(white, fp); + + for (x = 0; x < margin; x++) + fputs("\342\226\210", fp); + + for (x = 0; x < qrcode->width; x++) { + if(row1[x] & 1) { + if(y < qrcode->width - 1 && row2[x] & 1) { + fputc(' ', fp); + } else { + fputs("\342\226\204", fp); + } + } else { + if(y < qrcode->width - 1 && row2[x] & 1) { + fputs("\342\226\200", fp); + } else { + fputs("\342\226\210", fp); + } + } + } + + for (x = 0; x < margin; x++) + fputs("\342\226\210", fp); + + fputs(reset, fp); + fputc('\n', fp); + } + + /* bottom margin */ + writeUTF8_margin(fp, realwidth, white, reset, use_ansi); + + fclose(fp); + + return 0; +} + +static void writeASCII_margin(FILE* fp, int realwidth, char* buffer, int buffer_s, int invert) +{ + int y, h; + + h = margin; + + memset(buffer, (invert?'#':' '), realwidth); + buffer[realwidth] = '\n'; + buffer[realwidth + 1] = '\0'; + for(y=0; y<h; y++ ){ + fputs(buffer, fp); + } +} + +static int writeASCII(QRcode *qrcode, const char *outfile, int invert) +{ + FILE *fp; + unsigned char *row; + int x, y; + int realwidth; + char *buffer, *p; + int buffer_s; + char black = '#'; + char white = ' '; + + if(invert) { + black = ' '; + white = '#'; + } + + size = 1; + + fp = openFile(outfile); + + realwidth = (qrcode->width + margin * 2) * 2; + buffer_s = realwidth + 2; + buffer = (char *)malloc( buffer_s ); + if(buffer == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + + /* top margin */ + writeASCII_margin(fp, realwidth, buffer, buffer_s, invert); + + /* data */ + for(y=0; y<qrcode->width; y++) { + row = qrcode->data+(y*qrcode->width); + p = buffer; + + memset(p, white, margin * 2); + p += margin * 2; + + for(x=0; x<qrcode->width; x++) { + if(row[x]&0x1) { + *p++ = black; + *p++ = black; + } else { + *p++ = white; + *p++ = white; + } + } + + memset(p, white, margin * 2); + p += margin * 2; + *p++ = '\n'; + *p++ = '\0'; + fputs( buffer, fp ); + } + + /* bottom margin */ + writeASCII_margin(fp, realwidth, buffer, buffer_s, invert); + + fclose(fp); + free(buffer); + + return 0; +} + +static QRcode *encode(const unsigned char *intext, int length) +{ + QRcode *code; + + if(micro) { + if(eightbit) { + code = QRcode_encodeDataMQR(length, intext, version, level); + } else { + code = QRcode_encodeStringMQR((char *)intext, version, level, hint, casesensitive); + } + } else { + if(eightbit) { + code = QRcode_encodeData(length, intext, version, level); + } else { + code = QRcode_encodeString((char *)intext, version, level, hint, casesensitive); + } + } + + return code; +} + +static void qrencode(const unsigned char *intext, int length, const char *outfile) +{ + QRcode *qrcode; + + qrcode = encode(intext, length); + if(qrcode == NULL) { + perror("Failed to encode the input data"); + exit(EXIT_FAILURE); + } + + if(verbose) { + fprintf(stderr, "File: %s, Version: %d\n", (outfile!=NULL)?outfile:"(stdout)", qrcode->version); + } + + switch(image_type) { + case PNG_TYPE: + writePNG(qrcode, outfile); + break; + case EPS_TYPE: + writeEPS(qrcode, outfile); + break; + case SVG_TYPE: + writeSVG(qrcode, outfile); + break; + case ANSI_TYPE: + case ANSI256_TYPE: + writeANSI(qrcode, outfile); + break; + case ASCIIi_TYPE: + writeASCII(qrcode, outfile, 1); + break; + case ASCII_TYPE: + writeASCII(qrcode, outfile, 0); + break; + case UTF8_TYPE: + writeUTF8(qrcode, outfile, 0); + break; + case ANSIUTF8_TYPE: + writeUTF8(qrcode, outfile, 1); + break; + default: + fprintf(stderr, "Unknown image type.\n"); + exit(EXIT_FAILURE); + } + + QRcode_free(qrcode); +} + +static QRcode_List *encodeStructured(const unsigned char *intext, int length) +{ + QRcode_List *list; + + if(eightbit) { + list = QRcode_encodeDataStructured(length, intext, version, level); + } else { + list = QRcode_encodeStringStructured((char *)intext, version, level, hint, casesensitive); + } + + return list; +} + +static void qrencodeStructured(const unsigned char *intext, int length, const char *outfile) +{ + QRcode_List *qrlist, *p; + char filename[FILENAME_MAX]; + char *base, *q, *suffix = NULL; + const char *type_suffix; + int i = 1; + size_t suffix_size; + + switch(image_type) { + case PNG_TYPE: + type_suffix = ".png"; + break; + case EPS_TYPE: + type_suffix = ".eps"; + break; + case SVG_TYPE: + type_suffix = ".svg"; + break; + case ANSI_TYPE: + case ANSI256_TYPE: + case ASCII_TYPE: + case UTF8_TYPE: + case ANSIUTF8_TYPE: + type_suffix = ".txt"; + break; + default: + fprintf(stderr, "Unknown image type.\n"); + exit(EXIT_FAILURE); + } + + if(outfile == NULL) { + fprintf(stderr, "An output filename must be specified to store the structured images.\n"); + exit(EXIT_FAILURE); + } + base = strdup(outfile); + if(base == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + suffix_size = strlen(type_suffix); + if(strlen(base) > suffix_size) { + q = base + strlen(base) - suffix_size; + if(strcasecmp(type_suffix, q) == 0) { + suffix = strdup(q); + *q = '\0'; + } + } + + qrlist = encodeStructured(intext, length); + if(qrlist == NULL) { + perror("Failed to encode the input data"); + exit(EXIT_FAILURE); + } + + for(p = qrlist; p != NULL; p = p->next) { + if(p->code == NULL) { + fprintf(stderr, "Failed to encode the input data.\n"); + exit(EXIT_FAILURE); + } + if(suffix) { + snprintf(filename, FILENAME_MAX, "%s-%02d%s", base, i, suffix); + } else { + snprintf(filename, FILENAME_MAX, "%s-%02d", base, i); + } + + if(verbose) { + fprintf(stderr, "File: %s, Version: %d\n", filename, p->code->version); + } + + switch(image_type) { + case PNG_TYPE: + writePNG(p->code, filename); + break; + case EPS_TYPE: + writeEPS(p->code, filename); + break; + case SVG_TYPE: + writeSVG(p->code, filename); + break; + case ANSI_TYPE: + case ANSI256_TYPE: + writeANSI(p->code, filename); + break; + case ASCIIi_TYPE: + writeASCII(p->code, filename, 1); + break; + case ASCII_TYPE: + writeASCII(p->code, filename, 0); + break; + case UTF8_TYPE: + writeUTF8(p->code, filename, 0); + break; + case ANSIUTF8_TYPE: + writeUTF8(p->code, filename, 0); + break; + + default: + fprintf(stderr, "Unknown image type.\n"); + exit(EXIT_FAILURE); + } + i++; + } + + free(base); + if(suffix) { + free(suffix); + } + + QRcode_List_free(qrlist); +} + +int main(int argc, char **argv) +{ + int opt, lindex = -1; + char *outfile = NULL; + unsigned char *intext = NULL; + int length = 0; + + while((opt = getopt_long(argc, argv, optstring, options, &lindex)) != -1) { + switch(opt) { + case 'h': + if(lindex == 0) { + usage(1, 1); + } else { + usage(1, 0); + } + exit(EXIT_SUCCESS); + break; + case 'o': + outfile = optarg; + break; + case 's': + size = atoi(optarg); + if(size <= 0) { + fprintf(stderr, "Invalid size: %d\n", size); + exit(EXIT_FAILURE); + } + break; + case 'v': + version = atoi(optarg); + if(version < 0) { + fprintf(stderr, "Invalid version: %d\n", version); + exit(EXIT_FAILURE); + } + break; + case 'l': + switch(*optarg) { + case 'l': + case 'L': + level = QR_ECLEVEL_L; + break; + case 'm': + case 'M': + level = QR_ECLEVEL_M; + break; + case 'q': + case 'Q': + level = QR_ECLEVEL_Q; + break; + case 'h': + case 'H': + level = QR_ECLEVEL_H; + break; + default: + fprintf(stderr, "Invalid level: %s\n", optarg); + exit(EXIT_FAILURE); + break; + } + break; + case 'm': + margin = atoi(optarg); + if(margin < 0) { + fprintf(stderr, "Invalid margin: %d\n", margin); + exit(EXIT_FAILURE); + } + break; + case 'd': + dpi = atoi(optarg); + if( dpi < 0 ) { + fprintf(stderr, "Invalid DPI: %d\n", dpi); + exit(EXIT_FAILURE); + } + break; + case 't': + if(strcasecmp(optarg, "png") == 0) { + image_type = PNG_TYPE; + } else if(strcasecmp(optarg, "eps") == 0) { + image_type = EPS_TYPE; + } else if(strcasecmp(optarg, "svg") == 0) { + image_type = SVG_TYPE; + } else if(strcasecmp(optarg, "ansi") == 0) { + image_type = ANSI_TYPE; + } else if(strcasecmp(optarg, "ansi256") == 0) { + image_type = ANSI256_TYPE; + } else if(strcasecmp(optarg, "asciii") == 0) { + image_type = ASCIIi_TYPE; + } else if(strcasecmp(optarg, "ascii") == 0) { + image_type = ASCII_TYPE; + } else if(strcasecmp(optarg, "utf8") == 0) { + image_type = UTF8_TYPE; + } else if(strcasecmp(optarg, "ansiutf8") == 0) { + image_type = ANSIUTF8_TYPE; + } else { + fprintf(stderr, "Invalid image type: %s\n", optarg); + exit(EXIT_FAILURE); + } + break; + case 'S': + structured = 1; + break; + case 'k': + hint = QR_MODE_KANJI; + break; + case 'c': + casesensitive = 1; + break; + case 'i': + casesensitive = 0; + break; + case '8': + eightbit = 1; + break; + case 'M': + micro = 1; + break; + case 'f': + if(color_set(fg_color, optarg)) { + fprintf(stderr, "Invalid foreground color value.\n"); + exit(EXIT_FAILURE); + } + break; + case 'b': + if(color_set(bg_color, optarg)) { + fprintf(stderr, "Invalid background color value.\n"); + exit(EXIT_FAILURE); + } + break; + case 'V': + usage(0, 0); + exit(EXIT_SUCCESS); + break; + case 0: + break; + default: + fprintf(stderr, "Try `qrencode --help' for more information.\n"); + exit(EXIT_FAILURE); + break; + } + } + + if(argc == 1) { + usage(1, 0); + exit(EXIT_SUCCESS); + } + + if(outfile == NULL && image_type == PNG_TYPE) { + fprintf(stderr, "No output filename is given.\n"); + exit(EXIT_FAILURE); + } + + if(optind < argc) { + intext = (unsigned char *)argv[optind]; + length = strlen((char *)intext); + } + if(intext == NULL) { + intext = readStdin(&length); + } + + if(micro && version > MQRSPEC_VERSION_MAX) { + fprintf(stderr, "Version should be less or equal to %d.\n", MQRSPEC_VERSION_MAX); + exit(EXIT_FAILURE); + } else if(!micro && version > QRSPEC_VERSION_MAX) { + fprintf(stderr, "Version should be less or equal to %d.\n", QRSPEC_VERSION_MAX); + exit(EXIT_FAILURE); + } + + if(margin < 0) { + if(micro) { + margin = 2; + } else { + margin = 4; + } + } + + if(micro) { + if(version == 0) { + fprintf(stderr, "Version must be specified to encode a Micro QR Code symbol.\n"); + exit(EXIT_FAILURE); + } + if(structured) { + fprintf(stderr, "Micro QR Code does not support structured symbols.\n"); + exit(EXIT_FAILURE); + } + } + + if(structured) { + if(version == 0) { + fprintf(stderr, "Version must be specified to encode structured symbols.\n"); + exit(EXIT_FAILURE); + } + qrencodeStructured(intext, length, outfile); + } else { + qrencode(intext, length, outfile); + } + + return 0; +} diff --git a/contrib/qrencode-win32/qrencode.1.in b/contrib/qrencode-win32/qrencode.1.in new file mode 100644 index 0000000..64d3852 --- /dev/null +++ b/contrib/qrencode-win32/qrencode.1.in @@ -0,0 +1,113 @@ +.TH QRENCODE 1 "Oct. 9, 2012" "qrencode @VERSION@" +.SH NAME +qrencode \- Encode input data in a QR Code and save as a PNG or EPS image. +.SH SYNOPSIS +.B "qrencode" +[OPTION]... +[STRING] + +.SH DESCRIPTION +Libqrencode is a library for encoding data in a QR Code symbol, a kind of 2D +symbology that can be scanned by handy terminals such as a mobile phone with +CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and has +high robustness. + +Qrencode is a utility software using libqrencode to encode string data in +a QR Code and save as a PNG or EPS image. + +.SH OPTIONS +.TP +.B \-h, \-\-help +display help message. +.TP +.B \-o FILENAME, \-\-output=FILENAME +write image to FILENAME. If '\-' is specified, the result will be output to standard output. If \-S is given, structured symbols are written to FILENAME-01.png, FILENAME-02.png, ... (suffix is removed from FILENAME, if specified) +.TP +.B \-s NUMBER, \-\-size=NUMBER +specify the size of dot (pixel). (default=3) +.TP +.B \-l {LMQH}, \-\-level={LMQH} +specify error collectin level from L (lowest) to H (highest). (default=L) +.TP +.B \-v NUMBER, \-\-symversion=NUMBER +specify the version of the symbol. See SYMBOL VERSIONS for more information. (default=auto) +.TP +.B \-m NUMBER, \-\-margin=NUMBER +specify the width of margin. (default=4) +.TP +.B \-d NUMBER, \-\-dpi=NUMBER +specify the DPI of the generated PNG. (default=72) +.TP +.PD 0 +.B \-t {PNG,EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8} +.TP +.PD +.B \-\-type={PNG,EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8} +specify the type of the generated image. (default=PNG) +.TP +.B \-S, \-\-structured +make structured symbols. Version must be specified. +.TP +.B \-k, \-\-kanji +assume that the input text contains kanji (shift-jis). +.TP +.B \-c, \-\-casesensitive +encode lower-case alphabet characters in 8-bit mode. (default) +.TP +.B \-i, \-\-ignorecase +ignore case distinctions and use only upper-case characters. +.TP +.B \-8, \-\-8bit +encode entire data in 8-bit mode. \-k, \-c and \-i will be ignored. +.TP +.B \-M, \-\-micro +encode in a Micro QR Code. (experimental) +.TP +.PD 0 +.B \-\-foreground=RRGGBB[AA] +.TP +.PD +.B \-\-background=RRGGBB[AA] +specify foreground/background color in hexadecimal notation. +6-digit (RGB) or 8-digit (RGBA) form are supported. +Color output support available only in PNG and SVG. +.TP +.B \-V, \-\-version +display the version number and copyrights of the qrencode. +.TP +.B \-\-verbose +display verbose information to stderr. +.TP +.B [STRING] +input data. If it is not specified, data will be taken from standard input. + +.SH SYMBOL VERSIONS +The symbol versions of QR Code range from Version 1 to Version 40. +Each version has a different module configuration or number of modules, +ranging from Version 1 (21 x 21 modules) up to Version 40 (177 x 177 modules). +Each higher version number comprises 4 additional modules per side by default. +See http://www.qrcode.com/en/about/version.html for a detailed version list. + +.SH EXAMPLES +.TP +.B qrencode \-l L \-v 1 \-o output.png 'Hello, world!' +encode into a symbol version 1, level L. +.TP +.B qrencode \-iSv 1 \-\-output=output.png +read standard input and encode it into a structured-appended symbols in +case-insensitive mode. +.TP +.B cat bigfile.txt | qrencode \-S \-v 40 \-l L \-o output.png +encode into a symbol version 40, level L. + +.SH AUTHOR +Written by Kentaro Fukuchi. + +.SH RESOURCES +.TP +Main Web Site: http://fukuchi.org/works/qrencode/ +.TP +Source code repository: https://github.com/fukuchi/libqrencode/ + +.SH COPYRIGHT +Copyright (C) 2006-2012 Kentaro Fukuchi. diff --git a/contrib/qrencode-win32/qrencode.c b/contrib/qrencode-win32/qrencode.c new file mode 100644 index 0000000..8daedf0 --- /dev/null +++ b/contrib/qrencode-win32/qrencode.c @@ -0,0 +1,932 @@ +/* + * qrencode - QR Code encoder + * + * Copyright (C) 2006-2012 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> + +#include "qrencode.h" +#include "qrspec.h" +#include "mqrspec.h" +#include "bitstream.h" +#include "qrinput.h" +#include "rscode.h" +#include "split.h" +#include "mask.h" +#include "mmask.h" + +/****************************************************************************** + * Raw code + *****************************************************************************/ + +typedef struct { + int dataLength; + unsigned char *data; + int eccLength; + unsigned char *ecc; +} RSblock; + +typedef struct { + int version; + int dataLength; + int eccLength; + unsigned char *datacode; + unsigned char *ecccode; + int b1; + int blocks; + RSblock *rsblock; + int count; +} QRRawCode; + +static void RSblock_initBlock(RSblock *block, int dl, unsigned char *data, int el, unsigned char *ecc, RS *rs) +{ + block->dataLength = dl; + block->data = data; + block->eccLength = el; + block->ecc = ecc; + + encode_rs_char(rs, data, ecc); +} + +static int RSblock_init(RSblock *blocks, int spec[5], unsigned char *data, unsigned char *ecc) +{ + int i; + RSblock *block; + unsigned char *dp, *ep; + RS *rs; + int el, dl; + + dl = QRspec_rsDataCodes1(spec); + el = QRspec_rsEccCodes1(spec); + rs = init_rs(8, 0x11d, 0, 1, el, 255 - dl - el); + if(rs == NULL) return -1; + + block = blocks; + dp = data; + ep = ecc; + for(i=0; i<QRspec_rsBlockNum1(spec); i++) { + RSblock_initBlock(block, dl, dp, el, ep, rs); + dp += dl; + ep += el; + block++; + } + + if(QRspec_rsBlockNum2(spec) == 0) return 0; + + dl = QRspec_rsDataCodes2(spec); + el = QRspec_rsEccCodes2(spec); + rs = init_rs(8, 0x11d, 0, 1, el, 255 - dl - el); + if(rs == NULL) return -1; + for(i=0; i<QRspec_rsBlockNum2(spec); i++) { + RSblock_initBlock(block, dl, dp, el, ep, rs); + dp += dl; + ep += el; + block++; + } + + return 0; +} + +__STATIC void QRraw_free(QRRawCode *raw); +__STATIC QRRawCode *QRraw_new(QRinput *input) +{ + QRRawCode *raw; + int spec[5], ret; + + raw = (QRRawCode *)malloc(sizeof(QRRawCode)); + if(raw == NULL) return NULL; + + raw->datacode = QRinput_getByteStream(input); + if(raw->datacode == NULL) { + free(raw); + return NULL; + } + + QRspec_getEccSpec(input->version, input->level, spec); + + raw->version = input->version; + raw->b1 = QRspec_rsBlockNum1(spec); + raw->dataLength = QRspec_rsDataLength(spec); + raw->eccLength = QRspec_rsEccLength(spec); + raw->ecccode = (unsigned char *)malloc(raw->eccLength); + if(raw->ecccode == NULL) { + free(raw->datacode); + free(raw); + return NULL; + } + + raw->blocks = QRspec_rsBlockNum(spec); + raw->rsblock = (RSblock *)calloc(raw->blocks, sizeof(RSblock)); + if(raw->rsblock == NULL) { + QRraw_free(raw); + return NULL; + } + ret = RSblock_init(raw->rsblock, spec, raw->datacode, raw->ecccode); + if(ret < 0) { + QRraw_free(raw); + return NULL; + } + + raw->count = 0; + + return raw; +} + +/** + * Return a code (byte). + * This function can be called iteratively. + * @param raw raw code. + * @return code + */ +__STATIC unsigned char QRraw_getCode(QRRawCode *raw) +{ + int col, row; + unsigned char ret; + + if(raw->count < raw->dataLength) { + row = raw->count % raw->blocks; + col = raw->count / raw->blocks; + if(col >= raw->rsblock[0].dataLength) { + row += raw->b1; + } + ret = raw->rsblock[row].data[col]; + } else if(raw->count < raw->dataLength + raw->eccLength) { + row = (raw->count - raw->dataLength) % raw->blocks; + col = (raw->count - raw->dataLength) / raw->blocks; + ret = raw->rsblock[row].ecc[col]; + } else { + return 0; + } + raw->count++; + return ret; +} + +__STATIC void QRraw_free(QRRawCode *raw) +{ + if(raw != NULL) { + free(raw->datacode); + free(raw->ecccode); + free(raw->rsblock); + free(raw); + } +} + +/****************************************************************************** + * Raw code for Micro QR Code + *****************************************************************************/ + +typedef struct { + int version; + int dataLength; + int eccLength; + unsigned char *datacode; + unsigned char *ecccode; + RSblock *rsblock; + int oddbits; + int count; +} MQRRawCode; + +__STATIC void MQRraw_free(MQRRawCode *raw); +__STATIC MQRRawCode *MQRraw_new(QRinput *input) +{ + MQRRawCode *raw; + RS *rs; + + raw = (MQRRawCode *)malloc(sizeof(MQRRawCode)); + if(raw == NULL) return NULL; + + raw->version = input->version; + raw->dataLength = MQRspec_getDataLength(input->version, input->level); + raw->eccLength = MQRspec_getECCLength(input->version, input->level); + raw->oddbits = raw->dataLength * 8 - MQRspec_getDataLengthBit(input->version, input->level); + raw->datacode = QRinput_getByteStream(input); + if(raw->datacode == NULL) { + free(raw); + return NULL; + } + raw->ecccode = (unsigned char *)malloc(raw->eccLength); + if(raw->ecccode == NULL) { + free(raw->datacode); + free(raw); + return NULL; + } + + raw->rsblock = (RSblock *)calloc(1, sizeof(RSblock)); + if(raw->rsblock == NULL) { + MQRraw_free(raw); + return NULL; + } + + rs = init_rs(8, 0x11d, 0, 1, raw->eccLength, 255 - raw->dataLength - raw->eccLength); + if(rs == NULL) { + MQRraw_free(raw); + return NULL; + } + + RSblock_initBlock(raw->rsblock, raw->dataLength, raw->datacode, raw->eccLength, raw->ecccode, rs); + + raw->count = 0; + + return raw; +} + +/** + * Return a code (byte). + * This function can be called iteratively. + * @param raw raw code. + * @return code + */ +__STATIC unsigned char MQRraw_getCode(MQRRawCode *raw) +{ + unsigned char ret; + + if(raw->count < raw->dataLength) { + ret = raw->datacode[raw->count]; + } else if(raw->count < raw->dataLength + raw->eccLength) { + ret = raw->ecccode[raw->count - raw->dataLength]; + } else { + return 0; + } + raw->count++; + return ret; +} + +__STATIC void MQRraw_free(MQRRawCode *raw) +{ + if(raw != NULL) { + free(raw->datacode); + free(raw->ecccode); + free(raw->rsblock); + free(raw); + } +} + + +/****************************************************************************** + * Frame filling + *****************************************************************************/ + +typedef struct { + int width; + unsigned char *frame; + int x, y; + int dir; + int bit; + int mqr; +} FrameFiller; + +static FrameFiller *FrameFiller_new(int width, unsigned char *frame, int mqr) +{ + FrameFiller *filler; + + filler = (FrameFiller *)malloc(sizeof(FrameFiller)); + if(filler == NULL) return NULL; + filler->width = width; + filler->frame = frame; + filler->x = width - 1; + filler->y = width - 1; + filler->dir = -1; + filler->bit = -1; + filler->mqr = mqr; + + return filler; +} + +static unsigned char *FrameFiller_next(FrameFiller *filler) +{ + unsigned char *p; + int x, y, w; + + if(filler->bit == -1) { + filler->bit = 0; + return filler->frame + filler->y * filler->width + filler->x; + } + + x = filler->x; + y = filler->y; + p = filler->frame; + w = filler->width; + + if(filler->bit == 0) { + x--; + filler->bit++; + } else { + x++; + y += filler->dir; + filler->bit--; + } + + if(filler->dir < 0) { + if(y < 0) { + y = 0; + x -= 2; + filler->dir = 1; + if(!filler->mqr && x == 6) { + x--; + y = 9; + } + } + } else { + if(y == w) { + y = w - 1; + x -= 2; + filler->dir = -1; + if(!filler->mqr && x == 6) { + x--; + y -= 8; + } + } + } + if(x < 0 || y < 0) return NULL; + + filler->x = x; + filler->y = y; + + if(p[y * w + x] & 0x80) { + // This tail recursion could be optimized. + return FrameFiller_next(filler); + } + return &p[y * w + x]; +} + +#ifdef WITH_TESTS +extern unsigned char *FrameFiller_test(int version) +{ + int width; + unsigned char *frame, *p; + FrameFiller *filler; + int i, length; + + width = QRspec_getWidth(version); + frame = QRspec_newFrame(version); + if(frame == NULL) return NULL; + filler = FrameFiller_new(width, frame, 0); + if(filler == NULL) { + free(frame); + return NULL; + } + length = QRspec_getDataLength(version, QR_ECLEVEL_L) * 8 + + QRspec_getECCLength(version, QR_ECLEVEL_L) * 8 + + QRspec_getRemainder(version); + for(i=0; i<length; i++) { + p = FrameFiller_next(filler); + if(p == NULL) { + free(filler); + free(frame); + return NULL; + } + *p = (unsigned char)(i & 0x7f) | 0x80; + } + free(filler); + return frame; +} + +extern unsigned char *FrameFiller_testMQR(int version) +{ + int width; + unsigned char *frame, *p; + FrameFiller *filler; + int i, length; + + width = MQRspec_getWidth(version); + frame = MQRspec_newFrame(version); + if(frame == NULL) return NULL; + filler = FrameFiller_new(width, frame, 1); + if(filler == NULL) { + free(frame); + return NULL; + } + length = MQRspec_getDataLengthBit(version, QR_ECLEVEL_L) + + MQRspec_getECCLength(version, QR_ECLEVEL_L) * 8; + for(i=0; i<length; i++) { + p = FrameFiller_next(filler); + if(p == NULL) { + fprintf(stderr, "Frame filler run over the frame!\n"); + free(filler); + return frame; + } + *p = (unsigned char)(i & 0x7f) | 0x80; + } + free(filler); + return frame; +} +#endif + + +/****************************************************************************** + * QR-code encoding + *****************************************************************************/ + +__STATIC QRcode *QRcode_new(int version, int width, unsigned char *data) +{ + QRcode *qrcode; + + qrcode = (QRcode *)malloc(sizeof(QRcode)); + if(qrcode == NULL) return NULL; + + qrcode->version = version; + qrcode->width = width; + qrcode->data = data; + + return qrcode; +} + +void QRcode_free(QRcode *qrcode) +{ + if(qrcode != NULL) { + free(qrcode->data); + free(qrcode); + } +} + +__STATIC QRcode *QRcode_encodeMask(QRinput *input, int mask) +{ + int width, version; + QRRawCode *raw; + unsigned char *frame, *masked, *p, code, bit; + FrameFiller *filler; + int i, j; + QRcode *qrcode = NULL; + + if(input->mqr) { + errno = EINVAL; + return NULL; + } + if(input->version < 0 || input->version > QRSPEC_VERSION_MAX) { + errno = EINVAL; + return NULL; + } + if(input->level > QR_ECLEVEL_H) { + errno = EINVAL; + return NULL; + } + + raw = QRraw_new(input); + if(raw == NULL) return NULL; + + version = raw->version; + width = QRspec_getWidth(version); + frame = QRspec_newFrame(version); + if(frame == NULL) { + QRraw_free(raw); + return NULL; + } + filler = FrameFiller_new(width, frame, 0); + if(filler == NULL) { + QRraw_free(raw); + free(frame); + return NULL; + } + + /* inteleaved data and ecc codes */ + for(i=0; i<raw->dataLength + raw->eccLength; i++) { + code = QRraw_getCode(raw); + bit = 0x80; + for(j=0; j<8; j++) { + p = FrameFiller_next(filler); + if(p == NULL) goto EXIT; + *p = 0x02 | ((bit & code) != 0); + bit = bit >> 1; + } + } + QRraw_free(raw); + raw = NULL; + /* remainder bits */ + j = QRspec_getRemainder(version); + for(i=0; i<j; i++) { + p = FrameFiller_next(filler); + if(p == NULL) goto EXIT; + *p = 0x02; + } + + /* masking */ + if(mask == -2) { // just for debug purpose + masked = (unsigned char *)malloc(width * width); + memcpy(masked, frame, width * width); + } else if(mask < 0) { + masked = Mask_mask(width, frame, input->level); + } else { + masked = Mask_makeMask(width, frame, mask, input->level); + } + if(masked == NULL) { + goto EXIT; + } + qrcode = QRcode_new(version, width, masked); + if(qrcode == NULL) { + free(masked); + } + +EXIT: + QRraw_free(raw); + free(filler); + free(frame); + return qrcode; +} + +__STATIC QRcode *QRcode_encodeMaskMQR(QRinput *input, int mask) +{ + int width, version; + MQRRawCode *raw; + unsigned char *frame, *masked, *p, code, bit; + FrameFiller *filler; + int i, j; + QRcode *qrcode = NULL; + + if(!input->mqr) { + errno = EINVAL; + return NULL; + } + if(input->version <= 0 || input->version > MQRSPEC_VERSION_MAX) { + errno = EINVAL; + return NULL; + } + if(input->level > QR_ECLEVEL_Q) { + errno = EINVAL; + return NULL; + } + + raw = MQRraw_new(input); + if(raw == NULL) return NULL; + + version = raw->version; + width = MQRspec_getWidth(version); + frame = MQRspec_newFrame(version); + if(frame == NULL) { + MQRraw_free(raw); + return NULL; + } + filler = FrameFiller_new(width, frame, 1); + if(filler == NULL) { + MQRraw_free(raw); + free(frame); + return NULL; + } + + /* inteleaved data and ecc codes */ + for(i=0; i<raw->dataLength + raw->eccLength; i++) { + code = MQRraw_getCode(raw); + if(raw->oddbits && i == raw->dataLength - 1) { + bit = 1 << (raw->oddbits - 1); + for(j=0; j<raw->oddbits; j++) { + p = FrameFiller_next(filler); + if(p == NULL) goto EXIT; + *p = 0x02 | ((bit & code) != 0); + bit = bit >> 1; + } + } else { + bit = 0x80; + for(j=0; j<8; j++) { + p = FrameFiller_next(filler); + if(p == NULL) goto EXIT; + *p = 0x02 | ((bit & code) != 0); + bit = bit >> 1; + } + } + } + MQRraw_free(raw); + raw = NULL; + + /* masking */ + if(mask < 0) { + masked = MMask_mask(version, frame, input->level); + } else { + masked = MMask_makeMask(version, frame, mask, input->level); + } + if(masked == NULL) { + goto EXIT; + } + + qrcode = QRcode_new(version, width, masked); + +EXIT: + MQRraw_free(raw); + free(filler); + free(frame); + return qrcode; +} + +QRcode *QRcode_encodeInput(QRinput *input) +{ + if(input->mqr) { + return QRcode_encodeMaskMQR(input, -1); + } else { + return QRcode_encodeMask(input, -1); + } +} + +static QRcode *QRcode_encodeStringReal(const char *string, int version, QRecLevel level, int mqr, QRencodeMode hint, int casesensitive) +{ + QRinput *input; + QRcode *code; + int ret; + + if(string == NULL) { + errno = EINVAL; + return NULL; + } + if(hint != QR_MODE_8 && hint != QR_MODE_KANJI) { + errno = EINVAL; + return NULL; + } + + if(mqr) { + input = QRinput_newMQR(version, level); + } else { + input = QRinput_new2(version, level); + } + if(input == NULL) return NULL; + + ret = Split_splitStringToQRinput(string, input, hint, casesensitive); + if(ret < 0) { + QRinput_free(input); + return NULL; + } + code = QRcode_encodeInput(input); + QRinput_free(input); + + return code; +} + +QRcode *QRcode_encodeString(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive) +{ + return QRcode_encodeStringReal(string, version, level, 0, hint, casesensitive); +} + +QRcode *QRcode_encodeStringMQR(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive) +{ + return QRcode_encodeStringReal(string, version, level, 1, hint, casesensitive); +} + +static QRcode *QRcode_encodeDataReal(const unsigned char *data, int length, int version, QRecLevel level, int mqr) +{ + QRinput *input; + QRcode *code; + int ret; + + if(data == NULL || length == 0) { + errno = EINVAL; + return NULL; + } + + if(mqr) { + input = QRinput_newMQR(version, level); + } else { + input = QRinput_new2(version, level); + } + if(input == NULL) return NULL; + + ret = QRinput_append(input, QR_MODE_8, length, data); + if(ret < 0) { + QRinput_free(input); + return NULL; + } + code = QRcode_encodeInput(input); + QRinput_free(input); + + return code; +} + +QRcode *QRcode_encodeData(int size, const unsigned char *data, int version, QRecLevel level) +{ + return QRcode_encodeDataReal(data, size, version, level, 0); +} + +QRcode *QRcode_encodeString8bit(const char *string, int version, QRecLevel level) +{ + if(string == NULL) { + errno = EINVAL; + return NULL; + } + return QRcode_encodeDataReal((unsigned char *)string, strlen(string), version, level, 0); +} + +QRcode *QRcode_encodeDataMQR(int size, const unsigned char *data, int version, QRecLevel level) +{ + return QRcode_encodeDataReal(data, size, version, level, 1); +} + +QRcode *QRcode_encodeString8bitMQR(const char *string, int version, QRecLevel level) +{ + if(string == NULL) { + errno = EINVAL; + return NULL; + } + return QRcode_encodeDataReal((unsigned char *)string, strlen(string), version, level, 1); +} + + +/****************************************************************************** + * Structured QR-code encoding + *****************************************************************************/ + +static QRcode_List *QRcode_List_newEntry(void) +{ + QRcode_List *entry; + + entry = (QRcode_List *)malloc(sizeof(QRcode_List)); + if(entry == NULL) return NULL; + + entry->next = NULL; + entry->code = NULL; + + return entry; +} + +static void QRcode_List_freeEntry(QRcode_List *entry) +{ + if(entry != NULL) { + QRcode_free(entry->code); + free(entry); + } +} + +void QRcode_List_free(QRcode_List *qrlist) +{ + QRcode_List *list = qrlist, *next; + + while(list != NULL) { + next = list->next; + QRcode_List_freeEntry(list); + list = next; + } +} + +int QRcode_List_size(QRcode_List *qrlist) +{ + QRcode_List *list = qrlist; + int size = 0; + + while(list != NULL) { + size++; + list = list->next; + } + + return size; +} + +#if 0 +static unsigned char QRcode_parity(const char *str, int size) +{ + unsigned char parity = 0; + int i; + + for(i=0; i<size; i++) { + parity ^= str[i]; + } + + return parity; +} +#endif + +QRcode_List *QRcode_encodeInputStructured(QRinput_Struct *s) +{ + QRcode_List *head = NULL; + QRcode_List *tail = NULL; + QRcode_List *entry; + QRinput_InputList *list = s->head; + + while(list != NULL) { + if(head == NULL) { + entry = QRcode_List_newEntry(); + if(entry == NULL) goto ABORT; + head = entry; + tail = head; + } else { + entry = QRcode_List_newEntry(); + if(entry == NULL) goto ABORT; + tail->next = entry; + tail = tail->next; + } + tail->code = QRcode_encodeInput(list->input); + if(tail->code == NULL) { + goto ABORT; + } + list = list->next; + } + + return head; +ABORT: + QRcode_List_free(head); + return NULL; +} + +static QRcode_List *QRcode_encodeInputToStructured(QRinput *input) +{ + QRinput_Struct *s; + QRcode_List *codes; + + s = QRinput_splitQRinputToStruct(input); + if(s == NULL) return NULL; + + codes = QRcode_encodeInputStructured(s); + QRinput_Struct_free(s); + + return codes; +} + +static QRcode_List *QRcode_encodeDataStructuredReal( + int size, const unsigned char *data, + int version, QRecLevel level, + int eightbit, QRencodeMode hint, int casesensitive) +{ + QRinput *input; + QRcode_List *codes; + int ret; + + if(version <= 0) { + errno = EINVAL; + return NULL; + } + if(!eightbit && (hint != QR_MODE_8 && hint != QR_MODE_KANJI)) { + errno = EINVAL; + return NULL; + } + + input = QRinput_new2(version, level); + if(input == NULL) return NULL; + + if(eightbit) { + ret = QRinput_append(input, QR_MODE_8, size, data); + } else { + ret = Split_splitStringToQRinput((char *)data, input, hint, casesensitive); + } + if(ret < 0) { + QRinput_free(input); + return NULL; + } + codes = QRcode_encodeInputToStructured(input); + QRinput_free(input); + + return codes; +} + +QRcode_List *QRcode_encodeDataStructured(int size, const unsigned char *data, int version, QRecLevel level) { + return QRcode_encodeDataStructuredReal(size, data, version, level, 1, QR_MODE_NUL, 0); +} + +QRcode_List *QRcode_encodeString8bitStructured(const char *string, int version, QRecLevel level) { + if(string == NULL) { + errno = EINVAL; + return NULL; + } + return QRcode_encodeDataStructured(strlen(string), (unsigned char *)string, version, level); +} + +QRcode_List *QRcode_encodeStringStructured(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive) +{ + if(string == NULL) { + errno = EINVAL; + return NULL; + } + return QRcode_encodeDataStructuredReal(strlen(string), (unsigned char *)string, version, level, 0, hint, casesensitive); +} + +/****************************************************************************** + * System utilities + *****************************************************************************/ + +void QRcode_APIVersion(int *major_version, int *minor_version, int *micro_version) +{ + if(major_version != NULL) { + *major_version = MAJOR_VERSION; + } + if(minor_version != NULL) { + *minor_version = MINOR_VERSION; + } + if(micro_version != NULL) { + *micro_version = MICRO_VERSION; + } +} + +char *QRcode_APIVersionString(void) +{ + return VERSION; +} + +void QRcode_clearCache(void) +{ + QRspec_clearCache(); + MQRspec_clearCache(); + free_rs_cache(); +} diff --git a/contrib/qrencode-win32/qrencode.h b/contrib/qrencode-win32/qrencode.h new file mode 100644 index 0000000..e554bb9 --- /dev/null +++ b/contrib/qrencode-win32/qrencode.h @@ -0,0 +1,566 @@ +/** + * qrencode - QR Code encoder + * + * Copyright (C) 2006-2012 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** \mainpage + * Libqrencode is a library for encoding data in a QR Code symbol, a kind of 2D + * symbology. + * + * \section encoding Encoding + * + * There are two methods to encode data: <b>encoding a string/data</b> or + * <b>encoding a structured data</b>. + * + * \subsection encoding-string Encoding a string/data + * You can encode a string by calling QRcode_encodeString(). + * The given string is parsed automatically and encoded. If you want to encode + * data that can be represented as a C string style (NUL terminated), you can + * simply use this way. + * + * If the input data contains Kanji (Shift-JIS) characters and you want to + * encode them as Kanji in QR Code, you should give QR_MODE_KANJI as a hint. + * Otherwise, all of non-alphanumeric characters are encoded as 8 bit data. + * If you want to encode a whole string in 8 bit mode, you can use + * QRcode_encodeString8bit() instead. + * + * Please note that a C string can not contain NUL characters. If your data + * contains NUL, you must use QRcode_encodeData(). + * + * \subsection encoding-input Encoding a structured data + * You can construct a structured input data manually. If the structure of the + * input data is known, you can use this way. + * At first, create a ::QRinput object by QRinput_new(). Then add input data + * to the QRinput object by QRinput_append(). Finally call QRcode_encodeInput() + * to encode the QRinput data. + * You can reuse the QRinput data again to encode it in other symbols with + * different parameters. + * + * \section result Result + * The encoded symbol is resulted as a ::QRcode object. It will contain + * its version number, width of the symbol and an array represents the symbol. + * See ::QRcode for the details. You can free the object by QRcode_free(). + * + * Please note that the version of the result may be larger than specified. + * In such cases, the input data would be too large to be encoded in a + * symbol of the specified version. + * + * \section structured Structured append + * Libqrencode can generate "Structured-appended" symbols that enables to split + * a large data set into mulitple QR codes. A QR code reader concatenates + * multiple QR code symbols into a string. + * Just like QRcode_encodeString(), you can use QRcode_encodeStringStructured() + * to generate structured-appended symbols. This functions returns an instance + * of ::QRcode_List. The returned list is a singly-linked list of QRcode: you + * can retrieve each QR code in this way: + * + * \code + * QRcode_List *qrcodes; + * QRcode_List *entry; + * QRcode *qrcode; + * + * qrcodes = QRcode_encodeStringStructured(...); + * entry = qrcodes; + * while(entry != NULL) { + * qrcode = entry->code; + * // do something + * entry = entry->next; + * } + * QRcode_List_free(entry); + * \endcode + * + * Instead of using auto-parsing functions, you can construct your own + * structured input. At first, instantiate an object of ::QRinput_Struct + * by calling QRinput_Struct_new(). This object can hold multiple ::QRinput, + * and one QR code is generated for a ::QRinput. + * QRinput_Struct_appendInput() appends a ::QRinput to a ::QRinput_Struct + * object. In order to generate structured-appended symbols, it is required to + * embed headers to each symbol. You can use + * QRinput_Struct_insertStructuredAppendHeaders() to insert appropriate + * headers to each symbol. You should call this function just once before + * encoding symbols. + */ + +#ifndef __QRENCODE_H__ +#define __QRENCODE_H__ + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Encoding mode. + */ +typedef enum { + QR_MODE_NUL = -1, ///< Terminator (NUL character). Internal use only + QR_MODE_NUM = 0, ///< Numeric mode + QR_MODE_AN, ///< Alphabet-numeric mode + QR_MODE_8, ///< 8-bit data mode + QR_MODE_KANJI, ///< Kanji (shift-jis) mode + QR_MODE_STRUCTURE, ///< Internal use only + QR_MODE_ECI, ///< ECI mode + QR_MODE_FNC1FIRST, ///< FNC1, first position + QR_MODE_FNC1SECOND, ///< FNC1, second position +} QRencodeMode; + +/** + * Level of error correction. + */ +typedef enum { + QR_ECLEVEL_L = 0, ///< lowest + QR_ECLEVEL_M, + QR_ECLEVEL_Q, + QR_ECLEVEL_H ///< highest +} QRecLevel; + +/** + * Maximum version (size) of QR-code symbol. + */ +#define QRSPEC_VERSION_MAX 40 + +/** + * Maximum version (size) of QR-code symbol. + */ +#define MQRSPEC_VERSION_MAX 4 + + +/****************************************************************************** + * Input data (qrinput.c) + *****************************************************************************/ + +/** + * Singly linked list to contain input strings. An instance of this class + * contains its version and error correction level too. It is required to + * set them by QRinput_setVersion() and QRinput_setErrorCorrectionLevel(), + * or use QRinput_new2() to instantiate an object. + */ +typedef struct _QRinput QRinput; + +/** + * Instantiate an input data object. The version is set to 0 (auto-select) + * and the error correction level is set to QR_ECLEVEL_L. + * @return an input object (initialized). On error, NULL is returned and errno + * is set to indicate the error. + * @throw ENOMEM unable to allocate memory. + */ +extern QRinput *QRinput_new(void); + +/** + * Instantiate an input data object. + * @param version version number. + * @param level Error correction level. + * @return an input object (initialized). On error, NULL is returned and errno + * is set to indicate the error. + * @throw ENOMEM unable to allocate memory for input objects. + * @throw EINVAL invalid arguments. + */ +extern QRinput *QRinput_new2(int version, QRecLevel level); + +/** + * Instantiate an input data object. Object's Micro QR Code flag is set. + * Unlike with full-sized QR Code, version number must be specified (>0). + * @param version version number (1--4). + * @param level Error correction level. + * @return an input object (initialized). On error, NULL is returned and errno + * is set to indicate the error. + * @throw ENOMEM unable to allocate memory for input objects. + * @throw EINVAL invalid arguments. + */ +extern QRinput *QRinput_newMQR(int version, QRecLevel level); + +/** + * Append data to an input object. + * The data is copied and appended to the input object. + * @param input input object. + * @param mode encoding mode. + * @param size size of data (byte). + * @param data a pointer to the memory area of the input data. + * @retval 0 success. + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + * @throw EINVAL input data is invalid. + * + */ +extern int QRinput_append(QRinput *input, QRencodeMode mode, int size, const unsigned char *data); + +/** + * Append ECI header. + * @param input input object. + * @param ecinum ECI indicator number (0 - 999999) + * @retval 0 success. + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + * @throw EINVAL input data is invalid. + * + */ +extern int QRinput_appendECIheader(QRinput *input, unsigned int ecinum); + +/** + * Get current version. + * @param input input object. + * @return current version. + */ +extern int QRinput_getVersion(QRinput *input); + +/** + * Set version of the QR code that is to be encoded. + * This function cannot be applied to Micro QR Code. + * @param input input object. + * @param version version number (0 = auto) + * @retval 0 success. + * @retval -1 invalid argument. + */ +extern int QRinput_setVersion(QRinput *input, int version); + +/** + * Get current error correction level. + * @param input input object. + * @return Current error correcntion level. + */ +extern QRecLevel QRinput_getErrorCorrectionLevel(QRinput *input); + +/** + * Set error correction level of the QR code that is to be encoded. + * This function cannot be applied to Micro QR Code. + * @param input input object. + * @param level Error correction level. + * @retval 0 success. + * @retval -1 invalid argument. + */ +extern int QRinput_setErrorCorrectionLevel(QRinput *input, QRecLevel level); + +/** + * Set version and error correction level of the QR code at once. + * This function is recommened for Micro QR Code. + * @param input input object. + * @param version version number (0 = auto) + * @param level Error correction level. + * @retval 0 success. + * @retval -1 invalid argument. + */ +extern int QRinput_setVersionAndErrorCorrectionLevel(QRinput *input, int version, QRecLevel level); + +/** + * Free the input object. + * All of data chunks in the input object are freed too. + * @param input input object. + */ +extern void QRinput_free(QRinput *input); + +/** + * Validate the input data. + * @param mode encoding mode. + * @param size size of data (byte). + * @param data a pointer to the memory area of the input data. + * @retval 0 success. + * @retval -1 invalid arguments. + */ +extern int QRinput_check(QRencodeMode mode, int size, const unsigned char *data); + +/** + * Set of QRinput for structured symbols. + */ +typedef struct _QRinput_Struct QRinput_Struct; + +/** + * Instantiate a set of input data object. + * @return an instance of QRinput_Struct. On error, NULL is returned and errno + * is set to indicate the error. + * @throw ENOMEM unable to allocate memory. + */ +extern QRinput_Struct *QRinput_Struct_new(void); + +/** + * Set parity of structured symbols. + * @param s structured input object. + * @param parity parity of s. + */ +extern void QRinput_Struct_setParity(QRinput_Struct *s, unsigned char parity); + +/** + * Append a QRinput object to the set. QRinput created by QRinput_newMQR() + * will be rejected. + * @warning never append the same QRinput object twice or more. + * @param s structured input object. + * @param input an input object. + * @retval >0 number of input objects in the structure. + * @retval -1 an error occurred. See Exceptions for the details. + * @throw ENOMEM unable to allocate memory. + * @throw EINVAL invalid arguments. + */ +extern int QRinput_Struct_appendInput(QRinput_Struct *s, QRinput *input); + +/** + * Free all of QRinput in the set. + * @param s a structured input object. + */ +extern void QRinput_Struct_free(QRinput_Struct *s); + +/** + * Split a QRinput to QRinput_Struct. It calculates a parity, set it, then + * insert structured-append headers. QRinput created by QRinput_newMQR() will + * be rejected. + * @param input input object. Version number and error correction level must be + * set. + * @return a set of input data. On error, NULL is returned, and errno is set + * to indicate the error. See Exceptions for the details. + * @throw ERANGE input data is too large. + * @throw EINVAL invalid input data. + * @throw ENOMEM unable to allocate memory. + */ +extern QRinput_Struct *QRinput_splitQRinputToStruct(QRinput *input); + +/** + * Insert structured-append headers to the input structure. It calculates + * a parity and set it if the parity is not set yet. + * @param s input structure + * @retval 0 success. + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw EINVAL invalid input object. + * @throw ENOMEM unable to allocate memory. + */ +extern int QRinput_Struct_insertStructuredAppendHeaders(QRinput_Struct *s); + +/** + * Set FNC1-1st position flag. + */ +extern int QRinput_setFNC1First(QRinput *input); + +/** + * Set FNC1-2nd position flag and application identifier. + */ +extern int QRinput_setFNC1Second(QRinput *input, unsigned char appid); + +/****************************************************************************** + * QRcode output (qrencode.c) + *****************************************************************************/ + +/** + * QRcode class. + * Symbol data is represented as an array contains width*width uchars. + * Each uchar represents a module (dot). If the less significant bit of + * the uchar is 1, the corresponding module is black. The other bits are + * meaningless for usual applications, but here its specification is described. + * + * <pre> + * MSB 76543210 LSB + * |||||||`- 1=black/0=white + * ||||||`-- data and ecc code area + * |||||`--- format information + * ||||`---- version information + * |||`----- timing pattern + * ||`------ alignment pattern + * |`------- finder pattern and separator + * `-------- non-data modules (format, timing, etc.) + * </pre> + */ +typedef struct { + int version; ///< version of the symbol + int width; ///< width of the symbol + unsigned char *data; ///< symbol data +} QRcode; + +/** + * Singly-linked list of QRcode. Used to represent a structured symbols. + * A list is terminated with NULL. + */ +typedef struct _QRcode_List { + QRcode *code; + struct _QRcode_List *next; +} QRcode_List; + +/** + * Create a symbol from the input data. + * @warning This function is THREAD UNSAFE when pthread is disabled. + * @param input input data. + * @return an instance of QRcode class. The version of the result QRcode may + * be larger than the designated version. On error, NULL is returned, + * and errno is set to indicate the error. See Exceptions for the + * details. + * @throw EINVAL invalid input object. + * @throw ENOMEM unable to allocate memory for input objects. + */ +extern QRcode *QRcode_encodeInput(QRinput *input); + +/** + * Create a symbol from the string. The library automatically parses the input + * string and encodes in a QR Code symbol. + * @warning This function is THREAD UNSAFE when pthread is disabled. + * @param string input string. It must be NUL terminated. + * @param version version of the symbol. If 0, the library chooses the minimum + * version for the given input data. + * @param level error correction level. + * @param hint tell the library how Japanese Kanji characters should be + * encoded. If QR_MODE_KANJI is given, the library assumes that the + * given string contains Shift-JIS characters and encodes them in + * Kanji-mode. If QR_MODE_8 is given, all of non-alphanumerical + * characters will be encoded as is. If you want to embed UTF-8 + * string, choose this. Other mode will cause EINVAL error. + * @param casesensitive case-sensitive(1) or not(0). + * @return an instance of QRcode class. The version of the result QRcode may + * be larger than the designated version. On error, NULL is returned, + * and errno is set to indicate the error. See Exceptions for the + * details. + * @throw EINVAL invalid input object. + * @throw ENOMEM unable to allocate memory for input objects. + * @throw ERANGE input data is too large. + */ +extern QRcode *QRcode_encodeString(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive); + +/** + * Same to QRcode_encodeString(), but encode whole data in 8-bit mode. + * @warning This function is THREAD UNSAFE when pthread is disabled. + */ +extern QRcode *QRcode_encodeString8bit(const char *string, int version, QRecLevel level); + +/** + * Micro QR Code version of QRcode_encodeString(). + * @warning This function is THREAD UNSAFE when pthread is disabled. + */ +extern QRcode *QRcode_encodeStringMQR(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive); + +/** + * Micro QR Code version of QRcode_encodeString8bit(). + * @warning This function is THREAD UNSAFE when pthread is disabled. + */ +extern QRcode *QRcode_encodeString8bitMQR(const char *string, int version, QRecLevel level); + +/** + * Encode byte stream (may include '\0') in 8-bit mode. + * @warning This function is THREAD UNSAFE when pthread is disabled. + * @param size size of the input data. + * @param data input data. + * @param version version of the symbol. If 0, the library chooses the minimum + * version for the given input data. + * @param level error correction level. + * @throw EINVAL invalid input object. + * @throw ENOMEM unable to allocate memory for input objects. + * @throw ERANGE input data is too large. + */ +extern QRcode *QRcode_encodeData(int size, const unsigned char *data, int version, QRecLevel level); + +/** + * Micro QR Code version of QRcode_encodeData(). + * @warning This function is THREAD UNSAFE when pthread is disabled. + */ +extern QRcode *QRcode_encodeDataMQR(int size, const unsigned char *data, int version, QRecLevel level); + +/** + * Free the instance of QRcode class. + * @param qrcode an instance of QRcode class. + */ +extern void QRcode_free(QRcode *qrcode); + +/** + * Create structured symbols from the input data. + * @warning This function is THREAD UNSAFE when pthread is disabled. + * @param s + * @return a singly-linked list of QRcode. + */ +extern QRcode_List *QRcode_encodeInputStructured(QRinput_Struct *s); + +/** + * Create structured symbols from the string. The library automatically parses + * the input string and encodes in a QR Code symbol. + * @warning This function is THREAD UNSAFE when pthread is disabled. + * @param string input string. It must be NUL terminated. + * @param version version of the symbol. + * @param level error correction level. + * @param hint tell the library how Japanese Kanji characters should be + * encoded. If QR_MODE_KANJI is given, the library assumes that the + * given string contains Shift-JIS characters and encodes them in + * Kanji-mode. If QR_MODE_8 is given, all of non-alphanumerical + * characters will be encoded as is. If you want to embed UTF-8 + * string, choose this. Other mode will cause EINVAL error. + * @param casesensitive case-sensitive(1) or not(0). + * @return a singly-linked list of QRcode. On error, NULL is returned, and + * errno is set to indicate the error. See Exceptions for the details. + * @throw EINVAL invalid input object. + * @throw ENOMEM unable to allocate memory for input objects. + */ +extern QRcode_List *QRcode_encodeStringStructured(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive); + +/** + * Same to QRcode_encodeStringStructured(), but encode whole data in 8-bit mode. + * @warning This function is THREAD UNSAFE when pthread is disabled. + */ +extern QRcode_List *QRcode_encodeString8bitStructured(const char *string, int version, QRecLevel level); + +/** + * Create structured symbols from byte stream (may include '\0'). Wholde data + * are encoded in 8-bit mode. + * @warning This function is THREAD UNSAFE when pthread is disabled. + * @param size size of the input data. + * @param data input dat. + * @param version version of the symbol. + * @param level error correction level. + * @return a singly-linked list of QRcode. On error, NULL is returned, and + * errno is set to indicate the error. See Exceptions for the details. + * @throw EINVAL invalid input object. + * @throw ENOMEM unable to allocate memory for input objects. + */ +extern QRcode_List *QRcode_encodeDataStructured(int size, const unsigned char *data, int version, QRecLevel level); + +/** + * Return the number of symbols included in a QRcode_List. + * @param qrlist a head entry of a QRcode_List. + * @return number of symbols in the list. + */ +extern int QRcode_List_size(QRcode_List *qrlist); + +/** + * Free the QRcode_List. + * @param qrlist a head entry of a QRcode_List. + */ +extern void QRcode_List_free(QRcode_List *qrlist); + + +/****************************************************************************** + * System utilities + *****************************************************************************/ + +/** + * Return a string that identifies the library version. + * @param major_version + * @param minor_version + * @param micro_version + */ +extern void QRcode_APIVersion(int *major_version, int *minor_version, int *micro_version); + +/** + * Return a string that identifies the library version. + * @return a string identifies the library version. The string is held by the + * library. Do NOT free it. + */ +extern char *QRcode_APIVersionString(void); + +/** + * Clear all caches. This is only for debug purpose. If you are attacking a + * complicated memory leak bug, try this to reduce the reachable blocks record. + * @warning This function is THREAD UNSAFE when pthread is disabled. + */ +extern void QRcode_clearCache(void); + +#if defined(__cplusplus) +} +#endif + +#endif /* __QRENCODE_H__ */ diff --git a/contrib/qrencode-win32/qrencode.spec b/contrib/qrencode-win32/qrencode.spec new file mode 100644 index 0000000..3d657c5 --- /dev/null +++ b/contrib/qrencode-win32/qrencode.spec @@ -0,0 +1,72 @@ +%define ver 3.4.4 +%define rel 1 + +Name: qrencode +Version: %{ver} +Release: %{rel}%{?dist} +Summary: Libqrencode is a library for encoding data in a QR Code symbol, a kind of 2D symbology that can be scanned by handy terminals such as a mobile phone with CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness. + +Group: System Environment/Libraries +License: LGPLv2+ +URL: http://fukuchi.org/works/qrencode/ +Source0: http://fukuchi.org/works/qrencode/%{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%description +Libqrencode supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004. Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1. + +%package devel +Summary: Development files for libqrencode +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +Libqrencode supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004. Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1. + +This package contains development files for libqrencode. + +%prep +%setup -q + + +%build +%configure --without-tests +make %{?_smp_mflags} + + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) +%doc COPYING TODO ChangeLog NEWS README +%{_libdir}/libqrencode.so.* +%{_bindir}/qrencode +%{_mandir}/man1/qrencode.1.gz + +%files devel +%defattr(-,root,root,-) +%{_includedir}/qrencode.h +%{_libdir}/libqrencode.so +%{_libdir}/pkgconfig/libqrencode.pc + +%changelog +* Sat Oct 09 2010 Kentaro Fukuchi <kentaro at fukuchi.org> 3.9.0-1 +- URL and Source0 have been updated. +* Fri May 01 2008 Kentaro Fukuchi <fukuchi at megaui.net> 3.0.1-1 +- The man page has been packaged correctly. +* Tue May 15 2007 Kentaro Fukuchi <fukuchi at megaui.net> 1.0.2-2 +- Summary has been synchronized to README. +* Thu May 09 2007 Katsumi Saito <katsumi at jo1upk.ymt.prug.or.jp> 1.0.2-1 +- Initial RPM release diff --git a/contrib/qrencode-win32/qrencode.spec.in b/contrib/qrencode-win32/qrencode.spec.in new file mode 100644 index 0000000..5154394 --- /dev/null +++ b/contrib/qrencode-win32/qrencode.spec.in @@ -0,0 +1,72 @@ +%define ver @VERSION@ +%define rel 1 + +Name: qrencode +Version: %{ver} +Release: %{rel}%{?dist} +Summary: Libqrencode is a library for encoding data in a QR Code symbol, a kind of 2D symbology that can be scanned by handy terminals such as a mobile phone with CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness. + +Group: System Environment/Libraries +License: LGPLv2+ +URL: http://fukuchi.org/works/qrencode/ +Source0: http://fukuchi.org/works/qrencode/%{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%description +Libqrencode supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004. Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1. + +%package devel +Summary: Development files for libqrencode +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +Libqrencode supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004. Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1. + +This package contains development files for libqrencode. + +%prep +%setup -q + + +%build +%configure --without-tests +make %{?_smp_mflags} + + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) +%doc COPYING TODO ChangeLog NEWS README +%{_libdir}/libqrencode.so.* +%{_bindir}/qrencode +%{_mandir}/man1/qrencode.1.gz + +%files devel +%defattr(-,root,root,-) +%{_includedir}/qrencode.h +%{_libdir}/libqrencode.so +%{_libdir}/pkgconfig/libqrencode.pc + +%changelog +* Sat Oct 09 2010 Kentaro Fukuchi <kentaro at fukuchi.org> 3.9.0-1 +- URL and Source0 have been updated. +* Fri May 01 2008 Kentaro Fukuchi <fukuchi at megaui.net> 3.0.1-1 +- The man page has been packaged correctly. +* Tue May 15 2007 Kentaro Fukuchi <fukuchi at megaui.net> 1.0.2-2 +- Summary has been synchronized to README. +* Thu May 09 2007 Katsumi Saito <katsumi at jo1upk.ymt.prug.or.jp> 1.0.2-1 +- Initial RPM release diff --git a/contrib/qrencode-win32/qrencode_inner.h b/contrib/qrencode-win32/qrencode_inner.h new file mode 100644 index 0000000..3c40d06 --- /dev/null +++ b/contrib/qrencode-win32/qrencode_inner.h @@ -0,0 +1,88 @@ +/** + * qrencode - QR Code encoder + * + * Header for test use + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __QRENCODE_INNER_H__ +#define __QRENCODE_INNER_H__ + +/** + * This header file includes definitions for test use. + */ + +/****************************************************************************** + * Raw code + *****************************************************************************/ + +typedef struct { + int dataLength; + unsigned char *data; + int eccLength; + unsigned char *ecc; +} RSblock; + +typedef struct { + int version; + int dataLength; + int eccLength; + unsigned char *datacode; + unsigned char *ecccode; + int b1; + int blocks; + RSblock *rsblock; + int count; +} QRRawCode; + +extern QRRawCode *QRraw_new(QRinput *input); +extern unsigned char QRraw_getCode(QRRawCode *raw); +extern void QRraw_free(QRRawCode *raw); + +/****************************************************************************** + * Raw code for Micro QR Code + *****************************************************************************/ + +typedef struct { + int version; + int dataLength; + int eccLength; + unsigned char *datacode; + unsigned char *ecccode; + RSblock *rsblock; + int oddbits; + int count; +} MQRRawCode; + +extern MQRRawCode *MQRraw_new(QRinput *input); +extern unsigned char MQRraw_getCode(MQRRawCode *raw); +extern void MQRraw_free(MQRRawCode *raw); + +/****************************************************************************** + * Frame filling + *****************************************************************************/ +extern unsigned char *FrameFiller_test(int version); +extern unsigned char *FrameFiller_testMQR(int version); + +/****************************************************************************** + * QR-code encoding + *****************************************************************************/ +extern QRcode *QRcode_encodeMask(QRinput *input, int mask); +extern QRcode *QRcode_encodeMaskMQR(QRinput *input, int mask); +extern QRcode *QRcode_new(int version, int width, unsigned char *data); + +#endif /* __QRENCODE_INNER_H__ */ diff --git a/contrib/qrencode-win32/qrinput.c b/contrib/qrencode-win32/qrinput.c new file mode 100644 index 0000000..2c4d43c --- /dev/null +++ b/contrib/qrencode-win32/qrinput.c @@ -0,0 +1,1727 @@ +/* + * qrencode - QR Code encoder + * + * Input data chunk class + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> + +#include "qrencode.h" +#include "qrspec.h" +#include "mqrspec.h" +#include "bitstream.h" +#include "qrinput.h" + +/****************************************************************************** + * Utilities + *****************************************************************************/ +int QRinput_isSplittableMode(QRencodeMode mode) +{ + return (mode >= QR_MODE_NUM && mode <= QR_MODE_KANJI); +} + +/****************************************************************************** + * Entry of input data + *****************************************************************************/ + +static QRinput_List *QRinput_List_newEntry(QRencodeMode mode, int size, const unsigned char *data) +{ + QRinput_List *entry; + + if(QRinput_check(mode, size, data)) { + errno = EINVAL; + return NULL; + } + + entry = (QRinput_List *)malloc(sizeof(QRinput_List)); + if(entry == NULL) return NULL; + + entry->mode = mode; + entry->size = size; + if(size > 0) { + entry->data = (unsigned char *)malloc(size); + if(entry->data == NULL) { + free(entry); + return NULL; + } + memcpy(entry->data, data, size); + } + entry->bstream = NULL; + entry->next = NULL; + + return entry; +} + +static void QRinput_List_freeEntry(QRinput_List *entry) +{ + if(entry != NULL) { + free(entry->data); + BitStream_free(entry->bstream); + free(entry); + } +} + +static QRinput_List *QRinput_List_dup(QRinput_List *entry) +{ + QRinput_List *n; + + n = (QRinput_List *)malloc(sizeof(QRinput_List)); + if(n == NULL) return NULL; + + n->mode = entry->mode; + n->size = entry->size; + n->data = (unsigned char *)malloc(n->size); + if(n->data == NULL) { + free(n); + return NULL; + } + memcpy(n->data, entry->data, entry->size); + n->bstream = NULL; + n->next = NULL; + + return n; +} + +/****************************************************************************** + * Input Data + *****************************************************************************/ + +QRinput *QRinput_new(void) +{ + return QRinput_new2(0, QR_ECLEVEL_L); +} + +QRinput *QRinput_new2(int version, QRecLevel level) +{ + QRinput *input; + + if(version < 0 || version > QRSPEC_VERSION_MAX || level > QR_ECLEVEL_H) { + errno = EINVAL; + return NULL; + } + + input = (QRinput *)malloc(sizeof(QRinput)); + if(input == NULL) return NULL; + + input->head = NULL; + input->tail = NULL; + input->version = version; + input->level = level; + input->mqr = 0; + input->fnc1 = 0; + + return input; +} + +QRinput *QRinput_newMQR(int version, QRecLevel level) +{ + QRinput *input; + + if(version <= 0 || version > MQRSPEC_VERSION_MAX) goto INVALID; + if((MQRspec_getECCLength(version, level) == 0)) goto INVALID; + + input = QRinput_new2(version, level); + if(input == NULL) return NULL; + + input->mqr = 1; + + return input; + +INVALID: + errno = EINVAL; + return NULL; +} + +int QRinput_getVersion(QRinput *input) +{ + return input->version; +} + +int QRinput_setVersion(QRinput *input, int version) +{ + if(input->mqr || version < 0 || version > QRSPEC_VERSION_MAX) { + errno = EINVAL; + return -1; + } + + input->version = version; + + return 0; +} + +QRecLevel QRinput_getErrorCorrectionLevel(QRinput *input) +{ + return input->level; +} + +int QRinput_setErrorCorrectionLevel(QRinput *input, QRecLevel level) +{ + if(input->mqr || level > QR_ECLEVEL_H) { + errno = EINVAL; + return -1; + } + + input->level = level; + + return 0; +} + +int QRinput_setVersionAndErrorCorrectionLevel(QRinput *input, int version, QRecLevel level) +{ + if(input->mqr) { + if(version <= 0 || version > MQRSPEC_VERSION_MAX) goto INVALID; + if((MQRspec_getECCLength(version, level) == 0)) goto INVALID; + } else { + if(version < 0 || version > QRSPEC_VERSION_MAX) goto INVALID; + if(level > QR_ECLEVEL_H) goto INVALID; + } + + input->version = version; + input->level = level; + + return 0; + +INVALID: + errno = EINVAL; + return -1; +} + +static void QRinput_appendEntry(QRinput *input, QRinput_List *entry) +{ + if(input->tail == NULL) { + input->head = entry; + input->tail = entry; + } else { + input->tail->next = entry; + input->tail = entry; + } + entry->next = NULL; +} + +int QRinput_append(QRinput *input, QRencodeMode mode, int size, const unsigned char *data) +{ + QRinput_List *entry; + + entry = QRinput_List_newEntry(mode, size, data); + if(entry == NULL) { + return -1; + } + + QRinput_appendEntry(input, entry); + + return 0; +} + +/** + * Insert a structured-append header to the head of the input data. + * @param input input data. + * @param size number of structured symbols. + * @param number index number of the symbol. (1 <= number <= size) + * @param parity parity among input data. (NOTE: each symbol of a set of structured symbols has the same parity data) + * @retval 0 success. + * @retval -1 error occurred and errno is set to indeicate the error. See Execptions for the details. + * @throw EINVAL invalid parameter. + * @throw ENOMEM unable to allocate memory. + */ +__STATIC int QRinput_insertStructuredAppendHeader(QRinput *input, int size, int number, unsigned char parity) +{ + QRinput_List *entry; + unsigned char buf[3]; + + if(size > MAX_STRUCTURED_SYMBOLS) { + errno = EINVAL; + return -1; + } + if(number <= 0 || number > size) { + errno = EINVAL; + return -1; + } + + buf[0] = (unsigned char)size; + buf[1] = (unsigned char)number; + buf[2] = parity; + entry = QRinput_List_newEntry(QR_MODE_STRUCTURE, 3, buf); + if(entry == NULL) { + return -1; + } + + entry->next = input->head; + input->head = entry; + + return 0; +} + +int QRinput_appendECIheader(QRinput *input, unsigned int ecinum) +{ + unsigned char data[4]; + + if(ecinum > 999999) { + errno = EINVAL; + return -1; + } + + /* We manually create byte array of ecinum because + (unsigned char *)&ecinum may cause bus error on some architectures, */ + data[0] = ecinum & 0xff; + data[1] = (ecinum >> 8) & 0xff; + data[2] = (ecinum >> 16) & 0xff; + data[3] = (ecinum >> 24) & 0xff; + return QRinput_append(input, QR_MODE_ECI, 4, data); +} + +void QRinput_free(QRinput *input) +{ + QRinput_List *list, *next; + + if(input != NULL) { + list = input->head; + while(list != NULL) { + next = list->next; + QRinput_List_freeEntry(list); + list = next; + } + free(input); + } +} + +static unsigned char QRinput_calcParity(QRinput *input) +{ + unsigned char parity = 0; + QRinput_List *list; + int i; + + list = input->head; + while(list != NULL) { + if(list->mode != QR_MODE_STRUCTURE) { + for(i=list->size-1; i>=0; i--) { + parity ^= list->data[i]; + } + } + list = list->next; + } + + return parity; +} + +QRinput *QRinput_dup(QRinput *input) +{ + QRinput *n; + QRinput_List *list, *e; + + if(input->mqr) { + n = QRinput_newMQR(input->version, input->level); + } else { + n = QRinput_new2(input->version, input->level); + } + if(n == NULL) return NULL; + + list = input->head; + while(list != NULL) { + e = QRinput_List_dup(list); + if(e == NULL) { + QRinput_free(n); + return NULL; + } + QRinput_appendEntry(n, e); + list = list->next; + } + + return n; +} + +/****************************************************************************** + * Numeric data + *****************************************************************************/ + +/** + * Check the input data. + * @param size + * @param data + * @return result + */ +static int QRinput_checkModeNum(int size, const char *data) +{ + int i; + + for(i=0; i<size; i++) { + if(data[i] < '0' || data[i] > '9') + return -1; + } + + return 0; +} + +/** + * Estimates the length of the encoded bit stream of numeric data. + * @param size + * @return number of bits + */ +int QRinput_estimateBitsModeNum(int size) +{ + int w; + int bits; + + w = size / 3; + bits = w * 10; + switch(size - w * 3) { + case 1: + bits += 4; + break; + case 2: + bits += 7; + break; + default: + break; + } + + return bits; +} + +/** + * Convert the number data to a bit stream. + * @param entry + * @param mqr + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + */ +static int QRinput_encodeModeNum(QRinput_List *entry, int version, int mqr) +{ + int words, i, ret; + unsigned int val; + + entry->bstream = BitStream_new(); + if(entry->bstream == NULL) return -1; + + if(mqr) { + if(version > 1) { + ret = BitStream_appendNum(entry->bstream, version - 1, MQRSPEC_MODEID_NUM); + if(ret < 0) goto ABORT; + } + ret = BitStream_appendNum(entry->bstream, MQRspec_lengthIndicator(QR_MODE_NUM, version), entry->size); + if(ret < 0) goto ABORT; + } else { + ret = BitStream_appendNum(entry->bstream, 4, QRSPEC_MODEID_NUM); + if(ret < 0) goto ABORT; + + ret = BitStream_appendNum(entry->bstream, QRspec_lengthIndicator(QR_MODE_NUM, version), entry->size); + if(ret < 0) goto ABORT; + } + + words = entry->size / 3; + for(i=0; i<words; i++) { + val = (entry->data[i*3 ] - '0') * 100; + val += (entry->data[i*3+1] - '0') * 10; + val += (entry->data[i*3+2] - '0'); + + ret = BitStream_appendNum(entry->bstream, 10, val); + if(ret < 0) goto ABORT; + } + + if(entry->size - words * 3 == 1) { + val = entry->data[words*3] - '0'; + ret = BitStream_appendNum(entry->bstream, 4, val); + if(ret < 0) goto ABORT; + } else if(entry->size - words * 3 == 2) { + val = (entry->data[words*3 ] - '0') * 10; + val += (entry->data[words*3+1] - '0'); + BitStream_appendNum(entry->bstream, 7, val); + if(ret < 0) goto ABORT; + } + + return 0; +ABORT: + BitStream_free(entry->bstream); + entry->bstream = NULL; + return -1; +} + +/****************************************************************************** + * Alphabet-numeric data + *****************************************************************************/ + +const signed char QRinput_anTable[128] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 +}; + +/** + * Check the input data. + * @param size + * @param data + * @return result + */ +static int QRinput_checkModeAn(int size, const char *data) +{ + int i; + + for(i=0; i<size; i++) { + if(QRinput_lookAnTable(data[i]) < 0) + return -1; + } + + return 0; +} + +/** + * Estimates the length of the encoded bit stream of alphabet-numeric data. + * @param size + * @return number of bits + */ +int QRinput_estimateBitsModeAn(int size) +{ + int w; + int bits; + + w = size / 2; + bits = w * 11; + if(size & 1) { + bits += 6; + } + + return bits; +} + +/** + * Convert the alphabet-numeric data to a bit stream. + * @param entry + * @param mqr + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + * @throw EINVAL invalid version. + */ +static int QRinput_encodeModeAn(QRinput_List *entry, int version, int mqr) +{ + int words, i, ret; + unsigned int val; + + entry->bstream = BitStream_new(); + if(entry->bstream == NULL) return -1; + + if(mqr) { + if(version < 2) { + errno = EINVAL; + goto ABORT; + } + ret = BitStream_appendNum(entry->bstream, version - 1, MQRSPEC_MODEID_AN); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, MQRspec_lengthIndicator(QR_MODE_AN, version), entry->size); + if(ret < 0) goto ABORT; + } else { + ret = BitStream_appendNum(entry->bstream, 4, QRSPEC_MODEID_AN); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, QRspec_lengthIndicator(QR_MODE_AN, version), entry->size); + if(ret < 0) goto ABORT; + } + + words = entry->size / 2; + for(i=0; i<words; i++) { + val = (unsigned int)QRinput_lookAnTable(entry->data[i*2 ]) * 45; + val += (unsigned int)QRinput_lookAnTable(entry->data[i*2+1]); + + ret = BitStream_appendNum(entry->bstream, 11, val); + if(ret < 0) goto ABORT; + } + + if(entry->size & 1) { + val = (unsigned int)QRinput_lookAnTable(entry->data[words * 2]); + + ret = BitStream_appendNum(entry->bstream, 6, val); + if(ret < 0) goto ABORT; + } + + return 0; +ABORT: + BitStream_free(entry->bstream); + entry->bstream = NULL; + return -1; +} + +/****************************************************************************** + * 8 bit data + *****************************************************************************/ + +/** + * Estimates the length of the encoded bit stream of 8 bit data. + * @param size + * @return number of bits + */ +int QRinput_estimateBitsMode8(int size) +{ + return size * 8; +} + +/** + * Convert the 8bits data to a bit stream. + * @param entry + * @param mqr + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + */ +static int QRinput_encodeMode8(QRinput_List *entry, int version, int mqr) +{ + int ret; + + entry->bstream = BitStream_new(); + if(entry->bstream == NULL) return -1; + + if(mqr) { + if(version < 3) { + errno = EINVAL; + goto ABORT; + } + ret = BitStream_appendNum(entry->bstream, version - 1, MQRSPEC_MODEID_8); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, MQRspec_lengthIndicator(QR_MODE_8, version), entry->size); + if(ret < 0) goto ABORT; + } else { + ret = BitStream_appendNum(entry->bstream, 4, QRSPEC_MODEID_8); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, QRspec_lengthIndicator(QR_MODE_8, version), entry->size); + if(ret < 0) goto ABORT; + } + + ret = BitStream_appendBytes(entry->bstream, entry->size, entry->data); + if(ret < 0) goto ABORT; + + return 0; +ABORT: + BitStream_free(entry->bstream); + entry->bstream = NULL; + return -1; +} + + +/****************************************************************************** + * Kanji data + *****************************************************************************/ + +/** + * Estimates the length of the encoded bit stream of kanji data. + * @param size + * @return number of bits + */ +int QRinput_estimateBitsModeKanji(int size) +{ + return (size / 2) * 13; +} + +/** + * Check the input data. + * @param size + * @param data + * @return result + */ +static int QRinput_checkModeKanji(int size, const unsigned char *data) +{ + int i; + unsigned int val; + + if(size & 1) + return -1; + + for(i=0; i<size; i+=2) { + val = ((unsigned int)data[i] << 8) | data[i+1]; + if(val < 0x8140 || (val > 0x9ffc && val < 0xe040) || val > 0xebbf) { + return -1; + } + } + + return 0; +} + +/** + * Convert the kanji data to a bit stream. + * @param entry + * @param mqr + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + * @throw EINVAL invalid version. + */ +static int QRinput_encodeModeKanji(QRinput_List *entry, int version, int mqr) +{ + int ret, i; + unsigned int val, h; + + entry->bstream = BitStream_new(); + if(entry->bstream == NULL) return -1; + + if(mqr) { + if(version < 2) { + errno = EINVAL; + goto ABORT; + } + ret = BitStream_appendNum(entry->bstream, version - 1, MQRSPEC_MODEID_KANJI); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, MQRspec_lengthIndicator(QR_MODE_KANJI, version), entry->size/2); + if(ret < 0) goto ABORT; + } else { + ret = BitStream_appendNum(entry->bstream, 4, QRSPEC_MODEID_KANJI); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, QRspec_lengthIndicator(QR_MODE_KANJI, version), entry->size/2); + if(ret < 0) goto ABORT; + } + + for(i=0; i<entry->size; i+=2) { + val = ((unsigned int)entry->data[i] << 8) | entry->data[i+1]; + if(val <= 0x9ffc) { + val -= 0x8140; + } else { + val -= 0xc140; + } + h = (val >> 8) * 0xc0; + val = (val & 0xff) + h; + + ret = BitStream_appendNum(entry->bstream, 13, val); + if(ret < 0) goto ABORT; + } + + return 0; +ABORT: + BitStream_free(entry->bstream); + entry->bstream = NULL; + return -1; +} + +/****************************************************************************** + * Structured Symbol + *****************************************************************************/ + +/** + * Convert a structure symbol code to a bit stream. + * @param entry + * @param mqr + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + * @throw EINVAL invalid entry. + */ +static int QRinput_encodeModeStructure(QRinput_List *entry, int mqr) +{ + int ret; + + if(mqr) { + errno = EINVAL; + return -1; + } + entry->bstream = BitStream_new(); + if(entry->bstream == NULL) return -1; + + ret = BitStream_appendNum(entry->bstream, 4, QRSPEC_MODEID_STRUCTURE); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, 4, entry->data[1] - 1); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, 4, entry->data[0] - 1); + if(ret < 0) goto ABORT; + ret = BitStream_appendNum(entry->bstream, 8, entry->data[2]); + if(ret < 0) goto ABORT; + + return 0; +ABORT: + BitStream_free(entry->bstream); + entry->bstream = NULL; + return -1; +} + +/****************************************************************************** + * FNC1 + *****************************************************************************/ + +static int QRinput_checkModeFNC1Second(int size, const unsigned char *data) +{ + if(size != 1) return -1; + + return 0; +} + +static int QRinput_encodeModeFNC1Second(QRinput_List *entry, int version) +{ + int ret; + + entry->bstream = BitStream_new(); + if(entry->bstream == NULL) return -1; + + ret = BitStream_appendNum(entry->bstream, 4, QRSPEC_MODEID_FNC1SECOND); + if(ret < 0) goto ABORT; + + ret = BitStream_appendBytes(entry->bstream, 1, entry->data); + if(ret < 0) goto ABORT; + + return 0; +ABORT: + BitStream_free(entry->bstream); + entry->bstream = NULL; + return -1; +} + +/****************************************************************************** + * ECI header + *****************************************************************************/ +static unsigned int QRinput_decodeECIfromByteArray(unsigned char *data) +{ + int i; + unsigned int ecinum; + + ecinum = 0; + for(i=0; i<4; i++) { + ecinum = ecinum << 8; + ecinum |= data[3-i]; + } + + return ecinum; +} + +int QRinput_estimateBitsModeECI(unsigned char *data) +{ + unsigned int ecinum; + + ecinum = QRinput_decodeECIfromByteArray(data);; + + /* See Table 4 of JISX 0510:2004 pp.17. */ + if(ecinum < 128) { + return MODE_INDICATOR_SIZE + 8; + } else if(ecinum < 16384) { + return MODE_INDICATOR_SIZE + 16; + } else { + return MODE_INDICATOR_SIZE + 24; + } +} + +static int QRinput_encodeModeECI(QRinput_List *entry, int version) +{ + int ret, words; + unsigned int ecinum, code; + + entry->bstream = BitStream_new(); + if(entry->bstream == NULL) return -1; + + ecinum = QRinput_decodeECIfromByteArray(entry->data);; + + /* See Table 4 of JISX 0510:2004 pp.17. */ + if(ecinum < 128) { + words = 1; + code = ecinum; + } else if(ecinum < 16384) { + words = 2; + code = 0x8000 + ecinum; + } else { + words = 3; + code = 0xc0000 + ecinum; + } + + ret = BitStream_appendNum(entry->bstream, 4, QRSPEC_MODEID_ECI); + if(ret < 0) goto ABORT; + + ret = BitStream_appendNum(entry->bstream, words * 8, code); + if(ret < 0) goto ABORT; + + return 0; +ABORT: + BitStream_free(entry->bstream); + entry->bstream = NULL; + return -1; +} + +/****************************************************************************** + * Validation + *****************************************************************************/ + +int QRinput_check(QRencodeMode mode, int size, const unsigned char *data) +{ + if((mode == QR_MODE_FNC1FIRST && size < 0) || size <= 0) return -1; + + switch(mode) { + case QR_MODE_NUM: + return QRinput_checkModeNum(size, (const char *)data); + case QR_MODE_AN: + return QRinput_checkModeAn(size, (const char *)data); + case QR_MODE_KANJI: + return QRinput_checkModeKanji(size, data); + case QR_MODE_8: + return 0; + case QR_MODE_STRUCTURE: + return 0; + case QR_MODE_ECI: + return 0; + case QR_MODE_FNC1FIRST: + return 0; + case QR_MODE_FNC1SECOND: + return QRinput_checkModeFNC1Second(size, data); + case QR_MODE_NUL: + break; + } + + return -1; +} + +/****************************************************************************** + * Estimation of the bit length + *****************************************************************************/ + +/** + * Estimates the length of the encoded bit stream on the current version. + * @param entry + * @param version version of the symbol + * @param mqr + * @return number of bits + */ +static int QRinput_estimateBitStreamSizeOfEntry(QRinput_List *entry, int version, int mqr) +{ + int bits = 0; + int l, m; + int num; + + if(version == 0) version = 1; + + switch(entry->mode) { + case QR_MODE_NUM: + bits = QRinput_estimateBitsModeNum(entry->size); + break; + case QR_MODE_AN: + bits = QRinput_estimateBitsModeAn(entry->size); + break; + case QR_MODE_8: + bits = QRinput_estimateBitsMode8(entry->size); + break; + case QR_MODE_KANJI: + bits = QRinput_estimateBitsModeKanji(entry->size); + break; + case QR_MODE_STRUCTURE: + return STRUCTURE_HEADER_SIZE; + case QR_MODE_ECI: + bits = QRinput_estimateBitsModeECI(entry->data); + break; + case QR_MODE_FNC1FIRST: + return MODE_INDICATOR_SIZE; + case QR_MODE_FNC1SECOND: + return MODE_INDICATOR_SIZE + 8; + default: + return 0; + } + + if(mqr) { + l = QRspec_lengthIndicator(entry->mode, version); + m = version - 1; + bits += l + m; + } else { + l = QRspec_lengthIndicator(entry->mode, version); + m = 1 << l; + num = (entry->size + m - 1) / m; + + bits += num * (MODE_INDICATOR_SIZE + l); + } + + return bits; +} + +/** + * Estimates the length of the encoded bit stream of the data. + * @param input input data + * @param version version of the symbol + * @return number of bits + */ +__STATIC int QRinput_estimateBitStreamSize(QRinput *input, int version) +{ + QRinput_List *list; + int bits = 0; + + list = input->head; + while(list != NULL) { + bits += QRinput_estimateBitStreamSizeOfEntry(list, version, input->mqr); + list = list->next; + } + + return bits; +} + +/** + * Estimates the required version number of the symbol. + * @param input input data + * @return required version number + */ +static int QRinput_estimateVersion(QRinput *input) +{ + int bits; + int version, prev; + + version = 0; + do { + prev = version; + bits = QRinput_estimateBitStreamSize(input, prev); + version = QRspec_getMinimumVersion((bits + 7) / 8, input->level); + if (version < 0) { + return -1; + } + } while (version > prev); + + return version; +} + +/** + * Returns required length in bytes for specified mode, version and bits. + * @param mode + * @param version + * @param bits + * @return required length of code words in bytes. + */ +__STATIC int QRinput_lengthOfCode(QRencodeMode mode, int version, int bits) +{ + int payload, size, chunks, remain, maxsize; + + payload = bits - 4 - QRspec_lengthIndicator(mode, version); + switch(mode) { + case QR_MODE_NUM: + chunks = payload / 10; + remain = payload - chunks * 10; + size = chunks * 3; + if(remain >= 7) { + size += 2; + } else if(remain >= 4) { + size += 1; + } + break; + case QR_MODE_AN: + chunks = payload / 11; + remain = payload - chunks * 11; + size = chunks * 2; + if(remain >= 6) size++; + break; + case QR_MODE_8: + size = payload / 8; + break; + case QR_MODE_KANJI: + size = (payload / 13) * 2; + break; + case QR_MODE_STRUCTURE: + size = payload / 8; + break; + default: + size = 0; + break; + } + maxsize = QRspec_maximumWords(mode, version); + if(size < 0) size = 0; + if(maxsize > 0 && size > maxsize) size = maxsize; + + return size; +} + +/****************************************************************************** + * Data conversion + *****************************************************************************/ + +/** + * Convert the input data in the data chunk to a bit stream. + * @param entry + * @return number of bits (>0) or -1 for failure. + */ +static int QRinput_encodeBitStream(QRinput_List *entry, int version, int mqr) +{ + int words, ret; + QRinput_List *st1 = NULL, *st2 = NULL; + + if(entry->bstream != NULL) { + BitStream_free(entry->bstream); + entry->bstream = NULL; + } + + words = QRspec_maximumWords(entry->mode, version); + if(words != 0 && entry->size > words) { + st1 = QRinput_List_newEntry(entry->mode, words, entry->data); + if(st1 == NULL) goto ABORT; + st2 = QRinput_List_newEntry(entry->mode, entry->size - words, &entry->data[words]); + if(st2 == NULL) goto ABORT; + + ret = QRinput_encodeBitStream(st1, version, mqr); + if(ret < 0) goto ABORT; + ret = QRinput_encodeBitStream(st2, version, mqr); + if(ret < 0) goto ABORT; + entry->bstream = BitStream_new(); + if(entry->bstream == NULL) goto ABORT; + ret = BitStream_append(entry->bstream, st1->bstream); + if(ret < 0) goto ABORT; + ret = BitStream_append(entry->bstream, st2->bstream); + if(ret < 0) goto ABORT; + QRinput_List_freeEntry(st1); + QRinput_List_freeEntry(st2); + } else { + ret = 0; + switch(entry->mode) { + case QR_MODE_NUM: + ret = QRinput_encodeModeNum(entry, version, mqr); + break; + case QR_MODE_AN: + ret = QRinput_encodeModeAn(entry, version, mqr); + break; + case QR_MODE_8: + ret = QRinput_encodeMode8(entry, version, mqr); + break; + case QR_MODE_KANJI: + ret = QRinput_encodeModeKanji(entry, version, mqr); + break; + case QR_MODE_STRUCTURE: + ret = QRinput_encodeModeStructure(entry, mqr); + break; + case QR_MODE_ECI: + ret = QRinput_encodeModeECI(entry, version); + break; + case QR_MODE_FNC1SECOND: + ret = QRinput_encodeModeFNC1Second(entry, version); + break; + default: + break; + } + if(ret < 0) return -1; + } + + return BitStream_size(entry->bstream); +ABORT: + QRinput_List_freeEntry(st1); + QRinput_List_freeEntry(st2); + return -1; +} + +/** + * Convert the input data to a bit stream. + * @param input input data. + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + */ +static int QRinput_createBitStream(QRinput *input) +{ + QRinput_List *list; + int bits, total = 0; + + list = input->head; + while(list != NULL) { + bits = QRinput_encodeBitStream(list, input->version, input->mqr); + if(bits < 0) return -1; + total += bits; + list = list->next; + } + + return total; +} + +/** + * Convert the input data to a bit stream. + * When the version number is given and that is not sufficient, it is increased + * automatically. + * @param input input data. + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ENOMEM unable to allocate memory. + * @throw ERANGE input is too large. + */ +static int QRinput_convertData(QRinput *input) +{ + int bits; + int ver; + + ver = QRinput_estimateVersion(input); + if(ver > QRinput_getVersion(input)) { + QRinput_setVersion(input, ver); + } + + for(;;) { + bits = QRinput_createBitStream(input); + if(bits < 0) return -1; + ver = QRspec_getMinimumVersion((bits + 7) / 8, input->level); + if(ver < 0) { + errno = ERANGE; + return -1; + } else if(ver > QRinput_getVersion(input)) { + QRinput_setVersion(input, ver); + } else { + break; + } + } + + return 0; +} + +/** + * Append padding bits for the input data. + * @param bstream Bitstream to be appended. + * @param input input data. + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ERANGE input data is too large. + * @throw ENOMEM unable to allocate memory. + */ +static int QRinput_appendPaddingBit(BitStream *bstream, QRinput *input) +{ + int bits, maxbits, words, maxwords, i, ret; + BitStream *padding = NULL; + unsigned char *padbuf; + int padlen; + + bits = BitStream_size(bstream); + maxwords = QRspec_getDataLength(input->version, input->level); + maxbits = maxwords * 8; + + if(maxbits < bits) { + errno = ERANGE; + return -1; + } + if(maxbits == bits) { + return 0; + } + + if(maxbits - bits <= 4) { + ret = BitStream_appendNum(bstream, maxbits - bits, 0); + goto DONE; + } + + words = (bits + 4 + 7) / 8; + + padding = BitStream_new(); + if(padding == NULL) return -1; + ret = BitStream_appendNum(padding, words * 8 - bits, 0); + if(ret < 0) goto DONE; + + padlen = maxwords - words; + if(padlen > 0) { + padbuf = (unsigned char *)malloc(padlen); + if(padbuf == NULL) { + ret = -1; + goto DONE; + } + for(i=0; i<padlen; i++) { + padbuf[i] = (i&1)?0x11:0xec; + } + ret = BitStream_appendBytes(padding, padlen, padbuf); + free(padbuf); + if(ret < 0) { + goto DONE; + } + } + + ret = BitStream_append(bstream, padding); + +DONE: + BitStream_free(padding); + return ret; +} + +/** + * Append padding bits for the input data - Micro QR Code version. + * @param bstream Bitstream to be appended. + * @param input input data. + * @retval 0 success + * @retval -1 an error occurred and errno is set to indeicate the error. + * See Execptions for the details. + * @throw ERANGE input data is too large. + * @throw ENOMEM unable to allocate memory. + */ +static int QRinput_appendPaddingBitMQR(BitStream *bstream, QRinput *input) +{ + int bits, maxbits, words, maxwords, i, ret, termbits; + BitStream *padding = NULL; + unsigned char *padbuf; + int padlen; + + bits = BitStream_size(bstream); + maxbits = MQRspec_getDataLengthBit(input->version, input->level); + maxwords = maxbits / 8; + + if(maxbits < bits) { + errno = ERANGE; + return -1; + } + if(maxbits == bits) { + return 0; + } + + termbits = input->version * 2 + 1; + + if(maxbits - bits <= termbits) { + ret = BitStream_appendNum(bstream, maxbits - bits, 0); + goto DONE; + } + + bits += termbits; + + words = (bits + 7) / 8; + if(maxbits - words * 8 > 0) { + termbits += words * 8 - bits; + if(words == maxwords) termbits += maxbits - words * 8; + } else { + termbits += words * 8 - bits; + } + padding = BitStream_new(); + if(padding == NULL) return -1; + ret = BitStream_appendNum(padding, termbits, 0); + if(ret < 0) goto DONE; + + padlen = maxwords - words; + if(padlen > 0) { + padbuf = (unsigned char *)malloc(padlen); + if(padbuf == NULL) { + ret = -1; + goto DONE; + } + for(i=0; i<padlen; i++) { + padbuf[i] = (i&1)?0x11:0xec; + } + ret = BitStream_appendBytes(padding, padlen, padbuf); + free(padbuf); + if(ret < 0) { + goto DONE; + } + termbits = maxbits - maxwords * 8; + if(termbits > 0) { + ret = BitStream_appendNum(padding, termbits, 0); + if(ret < 0) goto DONE; + } + } + + ret = BitStream_append(bstream, padding); + +DONE: + BitStream_free(padding); + return ret; +} + +static int QRinput_insertFNC1Header(QRinput *input) +{ + QRinput_List *entry = NULL; + + if(input->fnc1 == 1) { + entry = QRinput_List_newEntry(QR_MODE_FNC1FIRST, 0, NULL); + } else if(input->fnc1 == 2) { + entry = QRinput_List_newEntry(QR_MODE_FNC1SECOND, 1, &(input->appid)); + } + if(entry == NULL) { + return -1; + } + + if(input->head->mode != QR_MODE_STRUCTURE || input->head->mode != QR_MODE_ECI) { + entry->next = input->head; + input->head = entry; + } else { + entry->next = input->head->next; + input->head->next = entry; + } + + return 0; +} + +/** + * Merge all bit streams in the input data. + * @param input input data. + * @return merged bit stream + */ + +__STATIC BitStream *QRinput_mergeBitStream(QRinput *input) +{ + BitStream *bstream; + QRinput_List *list; + int ret; + + if(input->mqr) { + if(QRinput_createBitStream(input) < 0) { + return NULL; + } + } else { + if(input->fnc1) { + if(QRinput_insertFNC1Header(input) < 0) { + return NULL; + } + } + if(QRinput_convertData(input) < 0) { + return NULL; + } + } + + bstream = BitStream_new(); + if(bstream == NULL) return NULL; + + list = input->head; + while(list != NULL) { + ret = BitStream_append(bstream, list->bstream); + if(ret < 0) { + BitStream_free(bstream); + return NULL; + } + list = list->next; + } + + return bstream; +} + +/** + * Merge all bit streams in the input data and append padding bits + * @param input input data. + * @return padded merged bit stream + */ + +__STATIC BitStream *QRinput_getBitStream(QRinput *input) +{ + BitStream *bstream; + int ret; + + bstream = QRinput_mergeBitStream(input); + if(bstream == NULL) { + return NULL; + } + if(input->mqr) { + ret = QRinput_appendPaddingBitMQR(bstream, input); + } else { + ret = QRinput_appendPaddingBit(bstream, input); + } + if(ret < 0) { + BitStream_free(bstream); + return NULL; + } + + return bstream; +} + +/** + * Pack all bit streams padding bits into a byte array. + * @param input input data. + * @return padded merged byte stream + */ + +unsigned char *QRinput_getByteStream(QRinput *input) +{ + BitStream *bstream; + unsigned char *array; + + bstream = QRinput_getBitStream(input); + if(bstream == NULL) { + return NULL; + } + array = BitStream_toByte(bstream); + BitStream_free(bstream); + + return array; +} + +/****************************************************************************** + * Structured input data + *****************************************************************************/ + +static QRinput_InputList *QRinput_InputList_newEntry(QRinput *input) +{ + QRinput_InputList *entry; + + entry = (QRinput_InputList *)malloc(sizeof(QRinput_InputList)); + if(entry == NULL) return NULL; + + entry->input = input; + entry->next = NULL; + + return entry; +} + +static void QRinput_InputList_freeEntry(QRinput_InputList *entry) +{ + if(entry != NULL) { + QRinput_free(entry->input); + free(entry); + } +} + +QRinput_Struct *QRinput_Struct_new(void) +{ + QRinput_Struct *s; + + s = (QRinput_Struct *)malloc(sizeof(QRinput_Struct)); + if(s == NULL) return NULL; + + s->size = 0; + s->parity = -1; + s->head = NULL; + s->tail = NULL; + + return s; +} + +void QRinput_Struct_setParity(QRinput_Struct *s, unsigned char parity) +{ + s->parity = (int)parity; +} + +int QRinput_Struct_appendInput(QRinput_Struct *s, QRinput *input) +{ + QRinput_InputList *e; + + if(input->mqr) { + errno = EINVAL; + return -1; + } + + e = QRinput_InputList_newEntry(input); + if(e == NULL) return -1; + + s->size++; + if(s->tail == NULL) { + s->head = e; + s->tail = e; + } else { + s->tail->next = e; + s->tail = e; + } + + return s->size; +} + +void QRinput_Struct_free(QRinput_Struct *s) +{ + QRinput_InputList *list, *next; + + if(s != NULL) { + list = s->head; + while(list != NULL) { + next = list->next; + QRinput_InputList_freeEntry(list); + list = next; + } + free(s); + } +} + +static unsigned char QRinput_Struct_calcParity(QRinput_Struct *s) +{ + QRinput_InputList *list; + unsigned char parity = 0; + + list = s->head; + while(list != NULL) { + parity ^= QRinput_calcParity(list->input); + list = list->next; + } + + QRinput_Struct_setParity(s, parity); + + return parity; +} + +static int QRinput_List_shrinkEntry(QRinput_List *entry, int bytes) +{ + unsigned char *data; + + data = (unsigned char *)malloc(bytes); + if(data == NULL) return -1; + + memcpy(data, entry->data, bytes); + free(entry->data); + entry->data = data; + entry->size = bytes; + + return 0; +} + +__STATIC int QRinput_splitEntry(QRinput_List *entry, int bytes) +{ + QRinput_List *e; + int ret; + + e = QRinput_List_newEntry(entry->mode, entry->size - bytes, entry->data + bytes); + if(e == NULL) { + return -1; + } + + ret = QRinput_List_shrinkEntry(entry, bytes); + if(ret < 0) { + QRinput_List_freeEntry(e); + return -1; + } + + e->next = entry->next; + entry->next = e; + + return 0; +} + +QRinput_Struct *QRinput_splitQRinputToStruct(QRinput *input) +{ + QRinput *p; + QRinput_Struct *s; + int bits, maxbits, nextbits, bytes, ret; + QRinput_List *list, *next, *prev; + + if(input->mqr) { + errno = EINVAL; + return NULL; + } + + s = QRinput_Struct_new(); + if(s == NULL) return NULL; + + input = QRinput_dup(input); + if(input == NULL) { + QRinput_Struct_free(s); + return NULL; + } + + QRinput_Struct_setParity(s, QRinput_calcParity(input)); + maxbits = QRspec_getDataLength(input->version, input->level) * 8 - STRUCTURE_HEADER_SIZE; + + if(maxbits <= 0) { + QRinput_Struct_free(s); + QRinput_free(input); + return NULL; + } + + bits = 0; + list = input->head; + prev = NULL; + while(list != NULL) { + nextbits = QRinput_estimateBitStreamSizeOfEntry(list, input->version, input->mqr); + if(bits + nextbits <= maxbits) { + ret = QRinput_encodeBitStream(list, input->version, input->mqr); + if(ret < 0) goto ABORT; + bits += ret; + prev = list; + list = list->next; + } else { + bytes = QRinput_lengthOfCode(list->mode, input->version, maxbits - bits); + p = QRinput_new2(input->version, input->level); + if(p == NULL) goto ABORT; + if(bytes > 0) { + /* Splits this entry into 2 entries. */ + ret = QRinput_splitEntry(list, bytes); + if(ret < 0) { + QRinput_free(p); + goto ABORT; + } + /* First half is the tail of the current input. */ + next = list->next; + list->next = NULL; + /* Second half is the head of the next input, p.*/ + p->head = next; + /* Renew QRinput.tail. */ + p->tail = input->tail; + input->tail = list; + /* Point to the next entry. */ + prev = list; + list = next; + } else { + /* Current entry will go to the next input. */ + prev->next = NULL; + p->head = list; + p->tail = input->tail; + input->tail = prev; + } + ret = QRinput_Struct_appendInput(s, input); + if(ret < 0) { + QRinput_free(p); + goto ABORT; + } + input = p; + bits = 0; + } + } + ret = QRinput_Struct_appendInput(s, input); + if(ret < 0) goto ABORT; + if(s->size > MAX_STRUCTURED_SYMBOLS) { + QRinput_Struct_free(s); + errno = ERANGE; + return NULL; + } + ret = QRinput_Struct_insertStructuredAppendHeaders(s); + if(ret < 0) { + QRinput_Struct_free(s); + return NULL; + } + + return s; + +ABORT: + QRinput_free(input); + QRinput_Struct_free(s); + return NULL; +} + +int QRinput_Struct_insertStructuredAppendHeaders(QRinput_Struct *s) +{ + int i; + QRinput_InputList *list; + + if(s->size == 1) { + return 0; + } + + if(s->parity < 0) { + QRinput_Struct_calcParity(s); + } + i = 1; + list = s->head; + while(list != NULL) { + if(QRinput_insertStructuredAppendHeader(list->input, s->size, i, s->parity)) + return -1; + i++; + list = list->next; + } + + return 0; +} + +/****************************************************************************** + * Extended encoding mode (FNC1 and ECI) + *****************************************************************************/ + +int QRinput_setFNC1First(QRinput *input) +{ + if(input->mqr) { + errno = EINVAL; + return -1; + } + input->fnc1 = 1; + + return 0; +} + +int QRinput_setFNC1Second(QRinput *input, unsigned char appid) +{ + if(input->mqr) { + errno = EINVAL; + return -1; + } + input->fnc1 = 2; + input->appid = appid; + + return 0; +} diff --git a/contrib/qrencode-win32/qrinput.h b/contrib/qrencode-win32/qrinput.h new file mode 100644 index 0000000..9e6bad6 --- /dev/null +++ b/contrib/qrencode-win32/qrinput.h @@ -0,0 +1,123 @@ +/* + * qrencode - QR Code encoder + * + * Input data chunk class + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __QRINPUT_H__ +#define __QRINPUT_H__ + +#include "qrencode.h" +#include "bitstream.h" + +int QRinput_isSplittableMode(QRencodeMode mode); + +/****************************************************************************** + * Entry of input data + *****************************************************************************/ +typedef struct _QRinput_List QRinput_List; + +struct _QRinput_List { + QRencodeMode mode; + int size; ///< Size of data chunk (byte). + unsigned char *data; ///< Data chunk. + BitStream *bstream; + QRinput_List *next; +}; + +/****************************************************************************** + * Input Data + *****************************************************************************/ +struct _QRinput { + int version; + QRecLevel level; + QRinput_List *head; + QRinput_List *tail; + int mqr; + int fnc1; + unsigned char appid; +}; + +/****************************************************************************** + * Structured append input data + *****************************************************************************/ +typedef struct _QRinput_InputList QRinput_InputList; + +struct _QRinput_InputList { + QRinput *input; + QRinput_InputList *next; +}; + +struct _QRinput_Struct { + int size; ///< number of structured symbols + int parity; + QRinput_InputList *head; + QRinput_InputList *tail; +}; + +/** + * Pack all bit streams padding bits into a byte array. + * @param input input data. + * @return padded merged byte stream + */ +extern unsigned char *QRinput_getByteStream(QRinput *input); + + +extern int QRinput_estimateBitsModeNum(int size); +extern int QRinput_estimateBitsModeAn(int size); +extern int QRinput_estimateBitsMode8(int size); +extern int QRinput_estimateBitsModeKanji(int size); + +extern QRinput *QRinput_dup(QRinput *input); + +extern const signed char QRinput_anTable[128]; + +/** + * Look up the alphabet-numeric convesion table (see JIS X0510:2004, pp.19). + * @param __c__ character + * @return value + */ +#define QRinput_lookAnTable(__c__) \ + ((__c__ & 0x80)?-1:QRinput_anTable[(int)__c__]) + +/** + * Length of a standard mode indicator in bits. + */ + +#define MODE_INDICATOR_SIZE 4 + +/** + * Length of a segment of structured-append header. + */ +#define STRUCTURE_HEADER_SIZE 20 + +/** + * Maximum number of symbols in a set of structured-appended symbols. + */ +#define MAX_STRUCTURED_SYMBOLS 16 + +#ifdef WITH_TESTS +extern BitStream *QRinput_mergeBitStream(QRinput *input); +extern BitStream *QRinput_getBitStream(QRinput *input); +extern int QRinput_estimateBitStreamSize(QRinput *input, int version); +extern int QRinput_splitEntry(QRinput_List *entry, int bytes); +extern int QRinput_lengthOfCode(QRencodeMode mode, int version, int bits); +extern int QRinput_insertStructuredAppendHeader(QRinput *input, int size, int index, unsigned char parity); +#endif + +#endif /* __QRINPUT_H__ */ diff --git a/contrib/qrencode-win32/qrspec.c b/contrib/qrencode-win32/qrspec.c new file mode 100644 index 0000000..a42706f --- /dev/null +++ b/contrib/qrencode-win32/qrspec.c @@ -0,0 +1,562 @@ +/* + * qrencode - QR Code encoder + * + * QR Code specification in convenient format. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * The following data / specifications are taken from + * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004) + * or + * "Automatic identification and data capture techniques -- + * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#ifdef HAVE_LIBPTHREAD +#include <pthread.h> +#endif + +#include "qrspec.h" +#include "qrinput.h" + +/****************************************************************************** + * Version and capacity + *****************************************************************************/ + +typedef struct { + int width; //< Edge length of the symbol + int words; //< Data capacity (bytes) + int remainder; //< Remainder bit (bits) + int ec[4]; //< Number of ECC code (bytes) +} QRspec_Capacity; + +/** + * Table of the capacity of symbols + * See Table 1 (pp.13) and Table 12-16 (pp.30-36), JIS X0510:2004. + */ +static const QRspec_Capacity qrspecCapacity[QRSPEC_VERSION_MAX + 1] = { + { 0, 0, 0, { 0, 0, 0, 0}}, + { 21, 26, 0, { 7, 10, 13, 17}}, // 1 + { 25, 44, 7, { 10, 16, 22, 28}}, + { 29, 70, 7, { 15, 26, 36, 44}}, + { 33, 100, 7, { 20, 36, 52, 64}}, + { 37, 134, 7, { 26, 48, 72, 88}}, // 5 + { 41, 172, 7, { 36, 64, 96, 112}}, + { 45, 196, 0, { 40, 72, 108, 130}}, + { 49, 242, 0, { 48, 88, 132, 156}}, + { 53, 292, 0, { 60, 110, 160, 192}}, + { 57, 346, 0, { 72, 130, 192, 224}}, //10 + { 61, 404, 0, { 80, 150, 224, 264}}, + { 65, 466, 0, { 96, 176, 260, 308}}, + { 69, 532, 0, { 104, 198, 288, 352}}, + { 73, 581, 3, { 120, 216, 320, 384}}, + { 77, 655, 3, { 132, 240, 360, 432}}, //15 + { 81, 733, 3, { 144, 280, 408, 480}}, + { 85, 815, 3, { 168, 308, 448, 532}}, + { 89, 901, 3, { 180, 338, 504, 588}}, + { 93, 991, 3, { 196, 364, 546, 650}}, + { 97, 1085, 3, { 224, 416, 600, 700}}, //20 + {101, 1156, 4, { 224, 442, 644, 750}}, + {105, 1258, 4, { 252, 476, 690, 816}}, + {109, 1364, 4, { 270, 504, 750, 900}}, + {113, 1474, 4, { 300, 560, 810, 960}}, + {117, 1588, 4, { 312, 588, 870, 1050}}, //25 + {121, 1706, 4, { 336, 644, 952, 1110}}, + {125, 1828, 4, { 360, 700, 1020, 1200}}, + {129, 1921, 3, { 390, 728, 1050, 1260}}, + {133, 2051, 3, { 420, 784, 1140, 1350}}, + {137, 2185, 3, { 450, 812, 1200, 1440}}, //30 + {141, 2323, 3, { 480, 868, 1290, 1530}}, + {145, 2465, 3, { 510, 924, 1350, 1620}}, + {149, 2611, 3, { 540, 980, 1440, 1710}}, + {153, 2761, 3, { 570, 1036, 1530, 1800}}, + {157, 2876, 0, { 570, 1064, 1590, 1890}}, //35 + {161, 3034, 0, { 600, 1120, 1680, 1980}}, + {165, 3196, 0, { 630, 1204, 1770, 2100}}, + {169, 3362, 0, { 660, 1260, 1860, 2220}}, + {173, 3532, 0, { 720, 1316, 1950, 2310}}, + {177, 3706, 0, { 750, 1372, 2040, 2430}} //40 +}; + +int QRspec_getDataLength(int version, QRecLevel level) +{ + return qrspecCapacity[version].words - qrspecCapacity[version].ec[level]; +} + +int QRspec_getECCLength(int version, QRecLevel level) +{ + return qrspecCapacity[version].ec[level]; +} + +int QRspec_getMinimumVersion(int size, QRecLevel level) +{ + int i; + int words; + + for(i=1; i<= QRSPEC_VERSION_MAX; i++) { + words = qrspecCapacity[i].words - qrspecCapacity[i].ec[level]; + if(words >= size) return i; + } + + return -1; +} + +int QRspec_getWidth(int version) +{ + return qrspecCapacity[version].width; +} + +int QRspec_getRemainder(int version) +{ + return qrspecCapacity[version].remainder; +} + +/****************************************************************************** + * Length indicator + *****************************************************************************/ + +static const int lengthTableBits[4][3] = { + {10, 12, 14}, + { 9, 11, 13}, + { 8, 16, 16}, + { 8, 10, 12} +}; + +int QRspec_lengthIndicator(QRencodeMode mode, int version) +{ + int l; + + if(!QRinput_isSplittableMode(mode)) return 0; + if(version <= 9) { + l = 0; + } else if(version <= 26) { + l = 1; + } else { + l = 2; + } + + return lengthTableBits[mode][l]; +} + +int QRspec_maximumWords(QRencodeMode mode, int version) +{ + int l; + int bits; + int words; + + if(!QRinput_isSplittableMode(mode)) return 0; + if(version <= 9) { + l = 0; + } else if(version <= 26) { + l = 1; + } else { + l = 2; + } + + bits = lengthTableBits[mode][l]; + words = (1 << bits) - 1; + if(mode == QR_MODE_KANJI) { + words *= 2; // the number of bytes is required + } + + return words; +} + +/****************************************************************************** + * Error correction code + *****************************************************************************/ + +/** + * Table of the error correction code (Reed-Solomon block) + * See Table 12-16 (pp.30-36), JIS X0510:2004. + */ +static const int eccTable[QRSPEC_VERSION_MAX+1][4][2] = { + {{ 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}}, + {{ 1, 0}, { 1, 0}, { 1, 0}, { 1, 0}}, // 1 + {{ 1, 0}, { 1, 0}, { 1, 0}, { 1, 0}}, + {{ 1, 0}, { 1, 0}, { 2, 0}, { 2, 0}}, + {{ 1, 0}, { 2, 0}, { 2, 0}, { 4, 0}}, + {{ 1, 0}, { 2, 0}, { 2, 2}, { 2, 2}}, // 5 + {{ 2, 0}, { 4, 0}, { 4, 0}, { 4, 0}}, + {{ 2, 0}, { 4, 0}, { 2, 4}, { 4, 1}}, + {{ 2, 0}, { 2, 2}, { 4, 2}, { 4, 2}}, + {{ 2, 0}, { 3, 2}, { 4, 4}, { 4, 4}}, + {{ 2, 2}, { 4, 1}, { 6, 2}, { 6, 2}}, //10 + {{ 4, 0}, { 1, 4}, { 4, 4}, { 3, 8}}, + {{ 2, 2}, { 6, 2}, { 4, 6}, { 7, 4}}, + {{ 4, 0}, { 8, 1}, { 8, 4}, {12, 4}}, + {{ 3, 1}, { 4, 5}, {11, 5}, {11, 5}}, + {{ 5, 1}, { 5, 5}, { 5, 7}, {11, 7}}, //15 + {{ 5, 1}, { 7, 3}, {15, 2}, { 3, 13}}, + {{ 1, 5}, {10, 1}, { 1, 15}, { 2, 17}}, + {{ 5, 1}, { 9, 4}, {17, 1}, { 2, 19}}, + {{ 3, 4}, { 3, 11}, {17, 4}, { 9, 16}}, + {{ 3, 5}, { 3, 13}, {15, 5}, {15, 10}}, //20 + {{ 4, 4}, {17, 0}, {17, 6}, {19, 6}}, + {{ 2, 7}, {17, 0}, { 7, 16}, {34, 0}}, + {{ 4, 5}, { 4, 14}, {11, 14}, {16, 14}}, + {{ 6, 4}, { 6, 14}, {11, 16}, {30, 2}}, + {{ 8, 4}, { 8, 13}, { 7, 22}, {22, 13}}, //25 + {{10, 2}, {19, 4}, {28, 6}, {33, 4}}, + {{ 8, 4}, {22, 3}, { 8, 26}, {12, 28}}, + {{ 3, 10}, { 3, 23}, { 4, 31}, {11, 31}}, + {{ 7, 7}, {21, 7}, { 1, 37}, {19, 26}}, + {{ 5, 10}, {19, 10}, {15, 25}, {23, 25}}, //30 + {{13, 3}, { 2, 29}, {42, 1}, {23, 28}}, + {{17, 0}, {10, 23}, {10, 35}, {19, 35}}, + {{17, 1}, {14, 21}, {29, 19}, {11, 46}}, + {{13, 6}, {14, 23}, {44, 7}, {59, 1}}, + {{12, 7}, {12, 26}, {39, 14}, {22, 41}}, //35 + {{ 6, 14}, { 6, 34}, {46, 10}, { 2, 64}}, + {{17, 4}, {29, 14}, {49, 10}, {24, 46}}, + {{ 4, 18}, {13, 32}, {48, 14}, {42, 32}}, + {{20, 4}, {40, 7}, {43, 22}, {10, 67}}, + {{19, 6}, {18, 31}, {34, 34}, {20, 61}},//40 +}; + +void QRspec_getEccSpec(int version, QRecLevel level, int spec[5]) +{ + int b1, b2; + int data, ecc; + + b1 = eccTable[version][level][0]; + b2 = eccTable[version][level][1]; + data = QRspec_getDataLength(version, level); + ecc = QRspec_getECCLength(version, level); + + if(b2 == 0) { + spec[0] = b1; + spec[1] = data / b1; + spec[2] = ecc / b1; + spec[3] = spec[4] = 0; + } else { + spec[0] = b1; + spec[1] = data / (b1 + b2); + spec[2] = ecc / (b1 + b2); + spec[3] = b2; + spec[4] = spec[1] + 1; + } +} + +/****************************************************************************** + * Alignment pattern + *****************************************************************************/ + +/** + * Positions of alignment patterns. + * This array includes only the second and the third position of the alignment + * patterns. Rest of them can be calculated from the distance between them. + * + * See Table 1 in Appendix E (pp.71) of JIS X0510:2004. + */ +static const int alignmentPattern[QRSPEC_VERSION_MAX+1][2] = { + { 0, 0}, + { 0, 0}, {18, 0}, {22, 0}, {26, 0}, {30, 0}, // 1- 5 + {34, 0}, {22, 38}, {24, 42}, {26, 46}, {28, 50}, // 6-10 + {30, 54}, {32, 58}, {34, 62}, {26, 46}, {26, 48}, //11-15 + {26, 50}, {30, 54}, {30, 56}, {30, 58}, {34, 62}, //16-20 + {28, 50}, {26, 50}, {30, 54}, {28, 54}, {32, 58}, //21-25 + {30, 58}, {34, 62}, {26, 50}, {30, 54}, {26, 52}, //26-30 + {30, 56}, {34, 60}, {30, 58}, {34, 62}, {30, 54}, //31-35 + {24, 50}, {28, 54}, {32, 58}, {26, 54}, {30, 58}, //35-40 +}; + +/** + * Put an alignment marker. + * @param frame + * @param width + * @param ox,oy center coordinate of the pattern + */ +static void QRspec_putAlignmentMarker(unsigned char *frame, int width, int ox, int oy) +{ + static const unsigned char finder[] = { + 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, + 0xa1, 0xa0, 0xa0, 0xa0, 0xa1, + 0xa1, 0xa0, 0xa1, 0xa0, 0xa1, + 0xa1, 0xa0, 0xa0, 0xa0, 0xa1, + 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, + }; + int x, y; + const unsigned char *s; + + frame += (oy - 2) * width + ox - 2; + s = finder; + for(y=0; y<5; y++) { + for(x=0; x<5; x++) { + frame[x] = s[x]; + } + frame += width; + s += 5; + } +} + +static void QRspec_putAlignmentPattern(int version, unsigned char *frame, int width) +{ + int d, w, x, y, cx, cy; + + if(version < 2) return; + + d = alignmentPattern[version][1] - alignmentPattern[version][0]; + if(d < 0) { + w = 2; + } else { + w = (width - alignmentPattern[version][0]) / d + 2; + } + + if(w * w - 3 == 1) { + x = alignmentPattern[version][0]; + y = alignmentPattern[version][0]; + QRspec_putAlignmentMarker(frame, width, x, y); + return; + } + + cx = alignmentPattern[version][0]; + for(x=1; x<w - 1; x++) { + QRspec_putAlignmentMarker(frame, width, 6, cx); + QRspec_putAlignmentMarker(frame, width, cx, 6); + cx += d; + } + + cy = alignmentPattern[version][0]; + for(y=0; y<w-1; y++) { + cx = alignmentPattern[version][0]; + for(x=0; x<w-1; x++) { + QRspec_putAlignmentMarker(frame, width, cx, cy); + cx += d; + } + cy += d; + } +} + +/****************************************************************************** + * Version information pattern + *****************************************************************************/ + +/** + * Version information pattern (BCH coded). + * See Table 1 in Appendix D (pp.68) of JIS X0510:2004. + */ +static const unsigned int versionPattern[QRSPEC_VERSION_MAX - 6] = { + 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d, + 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9, + 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75, + 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64, + 0x27541, 0x28c69 +}; + +unsigned int QRspec_getVersionPattern(int version) +{ + if(version < 7 || version > QRSPEC_VERSION_MAX) return 0; + + return versionPattern[version - 7]; +} + +/****************************************************************************** + * Format information + *****************************************************************************/ + +/* See calcFormatInfo in tests/test_qrspec.c */ +static const unsigned int formatInfo[4][8] = { + {0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976}, + {0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0}, + {0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed}, + {0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b} +}; + +unsigned int QRspec_getFormatInfo(int mask, QRecLevel level) +{ + if(mask < 0 || mask > 7) return 0; + + return formatInfo[level][mask]; +} + +/****************************************************************************** + * Frame + *****************************************************************************/ + +/** + * Cache of initial frames. + */ +/* C99 says that static storage shall be initialized to a null pointer + * by compiler. */ +static unsigned char *frames[QRSPEC_VERSION_MAX + 1]; +#ifdef HAVE_LIBPTHREAD +static pthread_mutex_t frames_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif + +/** + * Put a finder pattern. + * @param frame + * @param width + * @param ox,oy upper-left coordinate of the pattern + */ +static void putFinderPattern(unsigned char *frame, int width, int ox, int oy) +{ + static const unsigned char finder[] = { + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, + 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, + 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, + 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, + 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + }; + int x, y; + const unsigned char *s; + + frame += oy * width + ox; + s = finder; + for(y=0; y<7; y++) { + for(x=0; x<7; x++) { + frame[x] = s[x]; + } + frame += width; + s += 7; + } +} + + +static unsigned char *QRspec_createFrame(int version) +{ + unsigned char *frame, *p, *q; + int width; + int x, y; + unsigned int verinfo, v; + + width = qrspecCapacity[version].width; + frame = (unsigned char *)malloc(width * width); + if(frame == NULL) return NULL; + + memset(frame, 0, width * width); + /* Finder pattern */ + putFinderPattern(frame, width, 0, 0); + putFinderPattern(frame, width, width - 7, 0); + putFinderPattern(frame, width, 0, width - 7); + /* Separator */ + p = frame; + q = frame + width * (width - 7); + for(y=0; y<7; y++) { + p[7] = 0xc0; + p[width - 8] = 0xc0; + q[7] = 0xc0; + p += width; + q += width; + } + memset(frame + width * 7, 0xc0, 8); + memset(frame + width * 8 - 8, 0xc0, 8); + memset(frame + width * (width - 8), 0xc0, 8); + /* Mask format information area */ + memset(frame + width * 8, 0x84, 9); + memset(frame + width * 9 - 8, 0x84, 8); + p = frame + 8; + for(y=0; y<8; y++) { + *p = 0x84; + p += width; + } + p = frame + width * (width - 7) + 8; + for(y=0; y<7; y++) { + *p = 0x84; + p += width; + } + /* Timing pattern */ + p = frame + width * 6 + 8; + q = frame + width * 8 + 6; + for(x=1; x<width-15; x++) { + *p = 0x90 | (x & 1); + *q = 0x90 | (x & 1); + p++; + q += width; + } + /* Alignment pattern */ + QRspec_putAlignmentPattern(version, frame, width); + + /* Version information */ + if(version >= 7) { + verinfo = QRspec_getVersionPattern(version); + + p = frame + width * (width - 11); + v = verinfo; + for(x=0; x<6; x++) { + for(y=0; y<3; y++) { + p[width * y + x] = 0x88 | (v & 1); + v = v >> 1; + } + } + + p = frame + width - 11; + v = verinfo; + for(y=0; y<6; y++) { + for(x=0; x<3; x++) { + p[x] = 0x88 | (v & 1); + v = v >> 1; + } + p += width; + } + } + /* and a little bit... */ + frame[width * (width - 8) + 8] = 0x81; + + return frame; +} + +unsigned char *QRspec_newFrame(int version) +{ + unsigned char *frame; + int width; + + if(version < 1 || version > QRSPEC_VERSION_MAX) return NULL; + +#ifdef HAVE_LIBPTHREAD + pthread_mutex_lock(&frames_mutex); +#endif + if(frames[version] == NULL) { + frames[version] = QRspec_createFrame(version); + } +#ifdef HAVE_LIBPTHREAD + pthread_mutex_unlock(&frames_mutex); +#endif + if(frames[version] == NULL) return NULL; + + width = qrspecCapacity[version].width; + frame = (unsigned char *)malloc(width * width); + if(frame == NULL) return NULL; + memcpy(frame, frames[version], width * width); + + return frame; +} + +void QRspec_clearCache(void) +{ + int i; + +#ifdef HAVE_LIBPTHREAD + pthread_mutex_lock(&frames_mutex); +#endif + for(i=1; i<=QRSPEC_VERSION_MAX; i++) { + free(frames[i]); + frames[i] = NULL; + } +#ifdef HAVE_LIBPTHREAD + pthread_mutex_unlock(&frames_mutex); +#endif +} diff --git a/contrib/qrencode-win32/qrspec.h b/contrib/qrencode-win32/qrspec.h new file mode 100644 index 0000000..54a3d9f --- /dev/null +++ b/contrib/qrencode-win32/qrspec.h @@ -0,0 +1,181 @@ +/* + * qrencode - QR Code encoder + * + * QR Code specification in convenient format. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __QRSPEC_H__ +#define __QRSPEC_H__ + +#include "qrencode.h" + +/****************************************************************************** + * Version and capacity + *****************************************************************************/ + +/** + * Maximum width of a symbol + */ +#define QRSPEC_WIDTH_MAX 177 + +/** + * Return maximum data code length (bytes) for the version. + * @param version + * @param level + * @return maximum size (bytes) + */ +extern int QRspec_getDataLength(int version, QRecLevel level); + +/** + * Return maximum error correction code length (bytes) for the version. + * @param version + * @param level + * @return ECC size (bytes) + */ +extern int QRspec_getECCLength(int version, QRecLevel level); + +/** + * Return a version number that satisfies the input code length. + * @param size input code length (byte) + * @param level + * @return version number + */ +extern int QRspec_getMinimumVersion(int size, QRecLevel level); + +/** + * Return the width of the symbol for the version. + * @param version + * @return width + */ +extern int QRspec_getWidth(int version); + +/** + * Return the numer of remainder bits. + * @param version + * @return number of remainder bits + */ +extern int QRspec_getRemainder(int version); + +/****************************************************************************** + * Length indicator + *****************************************************************************/ + +/** + * Return the size of lenght indicator for the mode and version. + * @param mode + * @param version + * @return the size of the appropriate length indicator (bits). + */ +extern int QRspec_lengthIndicator(QRencodeMode mode, int version); + +/** + * Return the maximum length for the mode and version. + * @param mode + * @param version + * @return the maximum length (bytes) + */ +extern int QRspec_maximumWords(QRencodeMode mode, int version); + +/****************************************************************************** + * Error correction code + *****************************************************************************/ + +/** + * Return an array of ECC specification. + * @param version + * @param level + * @param spec an array of ECC specification contains as following: + * {# of type1 blocks, # of data code, # of ecc code, + * # of type2 blocks, # of data code} + */ +void QRspec_getEccSpec(int version, QRecLevel level, int spec[5]); + +#define QRspec_rsBlockNum(__spec__) (__spec__[0] + __spec__[3]) +#define QRspec_rsBlockNum1(__spec__) (__spec__[0]) +#define QRspec_rsDataCodes1(__spec__) (__spec__[1]) +#define QRspec_rsEccCodes1(__spec__) (__spec__[2]) +#define QRspec_rsBlockNum2(__spec__) (__spec__[3]) +#define QRspec_rsDataCodes2(__spec__) (__spec__[4]) +#define QRspec_rsEccCodes2(__spec__) (__spec__[2]) + +#define QRspec_rsDataLength(__spec__) \ + ((QRspec_rsBlockNum1(__spec__) * QRspec_rsDataCodes1(__spec__)) + \ + (QRspec_rsBlockNum2(__spec__) * QRspec_rsDataCodes2(__spec__))) +#define QRspec_rsEccLength(__spec__) \ + (QRspec_rsBlockNum(__spec__) * QRspec_rsEccCodes1(__spec__)) + +/****************************************************************************** + * Version information pattern + *****************************************************************************/ + +/** + * Return BCH encoded version information pattern that is used for the symbol + * of version 7 or greater. Use lower 18 bits. + * @param version + * @return BCH encoded version information pattern + */ +extern unsigned int QRspec_getVersionPattern(int version); + +/****************************************************************************** + * Format information + *****************************************************************************/ + +/** + * Return BCH encoded format information pattern. + * @param mask + * @param level + * @return BCH encoded format information pattern + */ +extern unsigned int QRspec_getFormatInfo(int mask, QRecLevel level); + +/****************************************************************************** + * Frame + *****************************************************************************/ + +/** + * Return a copy of initialized frame. + * When the same version is requested twice or more, a copy of cached frame + * is returned. + * @param version + * @return Array of unsigned char. You can free it by free(). + */ +extern unsigned char *QRspec_newFrame(int version); + +/** + * Clear the frame cache. Typically for debug. + */ +extern void QRspec_clearCache(void); + +/****************************************************************************** + * Mode indicator + *****************************************************************************/ + +/** + * Mode indicator. See Table 2 of JIS X0510:2004, pp.16. + */ +#define QRSPEC_MODEID_ECI 7 +#define QRSPEC_MODEID_NUM 1 +#define QRSPEC_MODEID_AN 2 +#define QRSPEC_MODEID_8 4 +#define QRSPEC_MODEID_KANJI 8 +#define QRSPEC_MODEID_FNC1FIRST 5 +#define QRSPEC_MODEID_FNC1SECOND 9 +#define QRSPEC_MODEID_STRUCTURE 3 +#define QRSPEC_MODEID_TERMINATOR 0 + +#endif /* __QRSPEC_H__ */ diff --git a/contrib/qrencode-win32/rscode.c b/contrib/qrencode-win32/rscode.c new file mode 100644 index 0000000..358ab32 --- /dev/null +++ b/contrib/qrencode-win32/rscode.c @@ -0,0 +1,327 @@ +/* + * qrencode - QR Code encoder + * + * Reed solomon encoder. This code is taken from Phil Karn's libfec then + * editted and packed into a pair of .c and .h files. + * + * Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q + * (libfec is released under the GNU Lesser General Public License.) + * + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdlib.h> +#include <string.h> +#ifdef HAVE_LIBPTHREAD +# include <pthread.h> +#endif + +#include "rscode.h" + +/* Stuff specific to the 8-bit symbol version of the general purpose RS codecs + * + */ +typedef unsigned char data_t; + + +/** + * Reed-Solomon codec control block + */ +struct _RS { + int mm; /* Bits per symbol */ + int nn; /* Symbols per block (= (1<<mm)-1) */ + data_t *alpha_to; /* log lookup table */ + data_t *index_of; /* Antilog lookup table */ + data_t *genpoly; /* Generator polynomial */ + int nroots; /* Number of generator roots = number of parity symbols */ + int fcr; /* First consecutive root, index form */ + int prim; /* Primitive element, index form */ + int iprim; /* prim-th root of 1, index form */ + int pad; /* Padding bytes in shortened block */ + int gfpoly; + struct _RS *next; +}; + +static RS *rslist = NULL; +#ifdef HAVE_LIBPTHREAD +static pthread_mutex_t rslist_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif + +static int modnn(RS *rs, int x){ + while (x >= rs->nn) { + x -= rs->nn; + x = (x >> rs->mm) + (x & rs->nn); + } + return x; +} + + +#define MODNN(x) modnn(rs,x) + +#define MM (rs->mm) +#define NN (rs->nn) +#define ALPHA_TO (rs->alpha_to) +#define INDEX_OF (rs->index_of) +#define GENPOLY (rs->genpoly) +#define NROOTS (rs->nroots) +#define FCR (rs->fcr) +#define PRIM (rs->prim) +#define IPRIM (rs->iprim) +#define PAD (rs->pad) +#define A0 (NN) + + +/* Initialize a Reed-Solomon codec + * symsize = symbol size, bits + * gfpoly = Field generator polynomial coefficients + * fcr = first root of RS code generator polynomial, index form + * prim = primitive element to generate polynomial roots + * nroots = RS code generator polynomial degree (number of roots) + * pad = padding bytes at front of shortened block + */ +static RS *init_rs_char(int symsize, int gfpoly, int fcr, int prim, int nroots, int pad) +{ + RS *rs; + + +/* Common code for intializing a Reed-Solomon control block (char or int symbols) + * Copyright 2004 Phil Karn, KA9Q + * May be used under the terms of the GNU Lesser General Public License (LGPL) + */ +//#undef NULL +//#define NULL ((void *)0) + + int i, j, sr,root,iprim; + + rs = NULL; + /* Check parameter ranges */ + if(symsize < 0 || symsize > (int)(8*sizeof(data_t))){ + goto done; + } + + if(fcr < 0 || fcr >= (1<<symsize)) + goto done; + if(prim <= 0 || prim >= (1<<symsize)) + goto done; + if(nroots < 0 || nroots >= (1<<symsize)) + goto done; /* Can't have more roots than symbol values! */ + if(pad < 0 || pad >= ((1<<symsize) -1 - nroots)) + goto done; /* Too much padding */ + + rs = (RS *)calloc(1,sizeof(RS)); + if(rs == NULL) + goto done; + + rs->mm = symsize; + rs->nn = (1<<symsize)-1; + rs->pad = pad; + + rs->alpha_to = (data_t *)malloc(sizeof(data_t)*(rs->nn+1)); + if(rs->alpha_to == NULL){ + free(rs); + rs = NULL; + goto done; + } + rs->index_of = (data_t *)malloc(sizeof(data_t)*(rs->nn+1)); + if(rs->index_of == NULL){ + free(rs->alpha_to); + free(rs); + rs = NULL; + goto done; + } + + /* Generate Galois field lookup tables */ + rs->index_of[0] = A0; /* log(zero) = -inf */ + rs->alpha_to[A0] = 0; /* alpha**-inf = 0 */ + sr = 1; + for(i=0;i<rs->nn;i++){ + rs->index_of[sr] = i; + rs->alpha_to[i] = sr; + sr <<= 1; + if(sr & (1<<symsize)) + sr ^= gfpoly; + sr &= rs->nn; + } + if(sr != 1){ + /* field generator polynomial is not primitive! */ + free(rs->alpha_to); + free(rs->index_of); + free(rs); + rs = NULL; + goto done; + } + + /* Form RS code generator polynomial from its roots */ + rs->genpoly = (data_t *)malloc(sizeof(data_t)*(nroots+1)); + if(rs->genpoly == NULL){ + free(rs->alpha_to); + free(rs->index_of); + free(rs); + rs = NULL; + goto done; + } + rs->fcr = fcr; + rs->prim = prim; + rs->nroots = nroots; + rs->gfpoly = gfpoly; + + /* Find prim-th root of 1, used in decoding */ + for(iprim=1;(iprim % prim) != 0;iprim += rs->nn) + ; + rs->iprim = iprim / prim; + + rs->genpoly[0] = 1; + for (i = 0,root=fcr*prim; i < nroots; i++,root += prim) { + rs->genpoly[i+1] = 1; + + /* Multiply rs->genpoly[] by @**(root + x) */ + for (j = i; j > 0; j--){ + if (rs->genpoly[j] != 0) + rs->genpoly[j] = rs->genpoly[j-1] ^ rs->alpha_to[modnn(rs,rs->index_of[rs->genpoly[j]] + root)]; + else + rs->genpoly[j] = rs->genpoly[j-1]; + } + /* rs->genpoly[0] can never be zero */ + rs->genpoly[0] = rs->alpha_to[modnn(rs,rs->index_of[rs->genpoly[0]] + root)]; + } + /* convert rs->genpoly[] to index form for quicker encoding */ + for (i = 0; i <= nroots; i++) + rs->genpoly[i] = rs->index_of[rs->genpoly[i]]; + done:; + + return rs; +} + +RS *init_rs(int symsize, int gfpoly, int fcr, int prim, int nroots, int pad) +{ + RS *rs; + +#ifdef HAVE_LIBPTHREAD + pthread_mutex_lock(&rslist_mutex); +#endif + for(rs = rslist; rs != NULL; rs = rs->next) { + if(rs->pad != pad) continue; + if(rs->nroots != nroots) continue; + if(rs->mm != symsize) continue; + if(rs->gfpoly != gfpoly) continue; + if(rs->fcr != fcr) continue; + if(rs->prim != prim) continue; + + goto DONE; + } + + rs = init_rs_char(symsize, gfpoly, fcr, prim, nroots, pad); + if(rs == NULL) goto DONE; + rs->next = rslist; + rslist = rs; + +DONE: +#ifdef HAVE_LIBPTHREAD + pthread_mutex_unlock(&rslist_mutex); +#endif + return rs; +} + + +void free_rs_char(RS *rs) +{ + free(rs->alpha_to); + free(rs->index_of); + free(rs->genpoly); + free(rs); +} + +void free_rs_cache(void) +{ + RS *rs, *next; + +#ifdef HAVE_LIBPTHREAD + pthread_mutex_lock(&rslist_mutex); +#endif + rs = rslist; + while(rs != NULL) { + next = rs->next; + free_rs_char(rs); + rs = next; + } + rslist = NULL; +#ifdef HAVE_LIBPTHREAD + pthread_mutex_unlock(&rslist_mutex); +#endif +} + +/* The guts of the Reed-Solomon encoder, meant to be #included + * into a function body with the following typedefs, macros and variables supplied + * according to the code parameters: + + * data_t - a typedef for the data symbol + * data_t data[] - array of NN-NROOTS-PAD and type data_t to be encoded + * data_t parity[] - an array of NROOTS and type data_t to be written with parity symbols + * NROOTS - the number of roots in the RS code generator polynomial, + * which is the same as the number of parity symbols in a block. + Integer variable or literal. + * + * NN - the total number of symbols in a RS block. Integer variable or literal. + * PAD - the number of pad symbols in a block. Integer variable or literal. + * ALPHA_TO - The address of an array of NN elements to convert Galois field + * elements in index (log) form to polynomial form. Read only. + * INDEX_OF - The address of an array of NN elements to convert Galois field + * elements in polynomial form to index (log) form. Read only. + * MODNN - a function to reduce its argument modulo NN. May be inline or a macro. + * GENPOLY - an array of NROOTS+1 elements containing the generator polynomial in index form + + * The memset() and memmove() functions are used. The appropriate header + * file declaring these functions (usually <string.h>) must be included by the calling + * program. + + * Copyright 2004, Phil Karn, KA9Q + * May be used under the terms of the GNU Lesser General Public License (LGPL) + */ + +#undef A0 +#define A0 (NN) /* Special reserved value encoding zero in index form */ + +void encode_rs_char(RS *rs, const data_t *data, data_t *parity) +{ + int i, j; + data_t feedback; + + memset(parity,0,NROOTS*sizeof(data_t)); + + for(i=0;i<NN-NROOTS-PAD;i++){ + feedback = INDEX_OF[data[i] ^ parity[0]]; + if(feedback != A0){ /* feedback term is non-zero */ +#ifdef UNNORMALIZED + /* This line is unnecessary when GENPOLY[NROOTS] is unity, as it must + * always be for the polynomials constructed by init_rs() + */ + feedback = MODNN(NN - GENPOLY[NROOTS] + feedback); +#endif + for(j=1;j<NROOTS;j++) + parity[j] ^= ALPHA_TO[MODNN(feedback + GENPOLY[NROOTS-j])]; + } + /* Shift */ + memmove(&parity[0],&parity[1],sizeof(data_t)*(NROOTS-1)); + if(feedback != A0) + parity[NROOTS-1] = ALPHA_TO[MODNN(feedback + GENPOLY[0])]; + else + parity[NROOTS-1] = 0; + } +} diff --git a/contrib/qrencode-win32/rscode.h b/contrib/qrencode-win32/rscode.h new file mode 100644 index 0000000..5b976b2 --- /dev/null +++ b/contrib/qrencode-win32/rscode.h @@ -0,0 +1,41 @@ +/* + * qrencode - QR Code encoder + * + * Reed solomon encoder. This code is taken from Phil Karn's libfec then + * editted and packed into a pair of .c and .h files. + * + * Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q + * (libfec is released under the GNU Lesser General Public License.) + * + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __RSCODE_H__ +#define __RSCODE_H__ + +/* + * General purpose RS codec, 8-bit symbols. + */ + +typedef struct _RS RS; + +extern RS *init_rs(int symsize, int gfpoly, int fcr, int prim, int nroots, int pad); +extern void encode_rs_char(RS *rs, const unsigned char *data, unsigned char *parity); +extern void free_rs_char(RS *rs); +extern void free_rs_cache(void); + +#endif /* __RSCODE_H__ */ diff --git a/contrib/qrencode-win32/split.c b/contrib/qrencode-win32/split.c new file mode 100644 index 0000000..a2cb0e0 --- /dev/null +++ b/contrib/qrencode-win32/split.c @@ -0,0 +1,326 @@ +/* + * qrencode - QR Code encoder + * + * Input data splitter. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * The following data / specifications are taken from + * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004) + * or + * "Automatic identification and data capture techniques -- + * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include "qrencode.h" +#include "qrinput.h" +#include "qrspec.h" +#include "split.h" + +#define isdigit(__c__) ((unsigned char)((signed char)(__c__) - '0') < 10) +#define isalnum(__c__) (QRinput_lookAnTable(__c__) >= 0) + +#if !HAVE_STRDUP +#undef strdup +char *strdup(const char *s) +{ + size_t len = strlen(s) + 1; + void *new = malloc(len); + if(new == NULL) return NULL; + return (char *)memcpy(new, s, len); +} +#endif + +static QRencodeMode Split_identifyMode(const char *string, QRencodeMode hint) +{ + unsigned char c, d; + unsigned int word; + + c = string[0]; + + if(c == '\0') return QR_MODE_NUL; + if(isdigit(c)) { + return QR_MODE_NUM; + } else if(isalnum(c)) { + return QR_MODE_AN; + } else if(hint == QR_MODE_KANJI) { + d = string[1]; + if(d != '\0') { + word = ((unsigned int)c << 8) | d; + if((word >= 0x8140 && word <= 0x9ffc) || (word >= 0xe040 && word <= 0xebbf)) { + return QR_MODE_KANJI; + } + } + } + + return QR_MODE_8; +} + +static int Split_eatNum(const char *string, QRinput *input, QRencodeMode hint); +static int Split_eatAn(const char *string, QRinput *input, QRencodeMode hint); +static int Split_eat8(const char *string, QRinput *input, QRencodeMode hint); +static int Split_eatKanji(const char *string, QRinput *input, QRencodeMode hint); + +static int Split_eatNum(const char *string, QRinput *input,QRencodeMode hint) +{ + const char *p; + int ret; + int run; + int dif; + int ln; + QRencodeMode mode; + + ln = QRspec_lengthIndicator(QR_MODE_NUM, input->version); + + p = string; + while(isdigit(*p)) { + p++; + } + run = p - string; + mode = Split_identifyMode(p, hint); + if(mode == QR_MODE_8) { + dif = QRinput_estimateBitsModeNum(run) + 4 + ln + + QRinput_estimateBitsMode8(1) /* + 4 + l8 */ + - QRinput_estimateBitsMode8(run + 1) /* - 4 - l8 */; + if(dif > 0) { + return Split_eat8(string, input, hint); + } + } + if(mode == QR_MODE_AN) { + dif = QRinput_estimateBitsModeNum(run) + 4 + ln + + QRinput_estimateBitsModeAn(1) /* + 4 + la */ + - QRinput_estimateBitsModeAn(run + 1) /* - 4 - la */; + if(dif > 0) { + return Split_eatAn(string, input, hint); + } + } + + ret = QRinput_append(input, QR_MODE_NUM, run, (unsigned char *)string); + if(ret < 0) return -1; + + return run; +} + +static int Split_eatAn(const char *string, QRinput *input, QRencodeMode hint) +{ + const char *p, *q; + int ret; + int run; + int dif; + int la, ln; + + la = QRspec_lengthIndicator(QR_MODE_AN, input->version); + ln = QRspec_lengthIndicator(QR_MODE_NUM, input->version); + + p = string; + while(isalnum(*p)) { + if(isdigit(*p)) { + q = p; + while(isdigit(*q)) { + q++; + } + dif = QRinput_estimateBitsModeAn(p - string) /* + 4 + la */ + + QRinput_estimateBitsModeNum(q - p) + 4 + ln + + (isalnum(*q)?(4 + ln):0) + - QRinput_estimateBitsModeAn(q - string) /* - 4 - la */; + if(dif < 0) { + break; + } else { + p = q; + } + } else { + p++; + } + } + + run = p - string; + + if(*p && !isalnum(*p)) { + dif = QRinput_estimateBitsModeAn(run) + 4 + la + + QRinput_estimateBitsMode8(1) /* + 4 + l8 */ + - QRinput_estimateBitsMode8(run + 1) /* - 4 - l8 */; + if(dif > 0) { + return Split_eat8(string, input, hint); + } + } + + ret = QRinput_append(input, QR_MODE_AN, run, (unsigned char *)string); + if(ret < 0) return -1; + + return run; +} + +static int Split_eatKanji(const char *string, QRinput *input, QRencodeMode hint) +{ + const char *p; + int ret; + int run; + + p = string; + while(Split_identifyMode(p, hint) == QR_MODE_KANJI) { + p += 2; + } + run = p - string; + ret = QRinput_append(input, QR_MODE_KANJI, run, (unsigned char *)string); + if(ret < 0) return -1; + + return run; +} + +static int Split_eat8(const char *string, QRinput *input, QRencodeMode hint) +{ + const char *p, *q; + QRencodeMode mode; + int ret; + int run; + int dif; + int la, ln, l8; + int swcost; + + la = QRspec_lengthIndicator(QR_MODE_AN, input->version); + ln = QRspec_lengthIndicator(QR_MODE_NUM, input->version); + l8 = QRspec_lengthIndicator(QR_MODE_8, input->version); + + p = string + 1; + while(*p != '\0') { + mode = Split_identifyMode(p, hint); + if(mode == QR_MODE_KANJI) { + break; + } + if(mode == QR_MODE_NUM) { + q = p; + while(isdigit(*q)) { + q++; + } + if(Split_identifyMode(q, hint) == QR_MODE_8) { + swcost = 4 + l8; + } else { + swcost = 0; + } + dif = QRinput_estimateBitsMode8(p - string) /* + 4 + l8 */ + + QRinput_estimateBitsModeNum(q - p) + 4 + ln + + swcost + - QRinput_estimateBitsMode8(q - string) /* - 4 - l8 */; + if(dif < 0) { + break; + } else { + p = q; + } + } else if(mode == QR_MODE_AN) { + q = p; + while(isalnum(*q)) { + q++; + } + if(Split_identifyMode(q, hint) == QR_MODE_8) { + swcost = 4 + l8; + } else { + swcost = 0; + } + dif = QRinput_estimateBitsMode8(p - string) /* + 4 + l8 */ + + QRinput_estimateBitsModeAn(q - p) + 4 + la + + swcost + - QRinput_estimateBitsMode8(q - string) /* - 4 - l8 */; + if(dif < 0) { + break; + } else { + p = q; + } + } else { + p++; + } + } + + run = p - string; + ret = QRinput_append(input, QR_MODE_8, run, (unsigned char *)string); + if(ret < 0) return -1; + + return run; +} + +static int Split_splitString(const char *string, QRinput *input, + QRencodeMode hint) +{ + int length; + QRencodeMode mode; + + if(*string == '\0') return 0; + + mode = Split_identifyMode(string, hint); + if(mode == QR_MODE_NUM) { + length = Split_eatNum(string, input, hint); + } else if(mode == QR_MODE_AN) { + length = Split_eatAn(string, input, hint); + } else if(mode == QR_MODE_KANJI && hint == QR_MODE_KANJI) { + length = Split_eatKanji(string, input, hint); + } else { + length = Split_eat8(string, input, hint); + } + if(length == 0) return 0; + if(length < 0) return -1; + return Split_splitString(&string[length], input, hint); +} + +static char *dupAndToUpper(const char *str, QRencodeMode hint) +{ + char *newstr, *p; + QRencodeMode mode; + + newstr = strdup(str); + if(newstr == NULL) return NULL; + + p = newstr; + while(*p != '\0') { + mode = Split_identifyMode(p, hint); + if(mode == QR_MODE_KANJI) { + p += 2; + } else { + if (*p >= 'a' && *p <= 'z') { + *p = (char)((int)*p - 32); + } + p++; + } + } + + return newstr; +} + +int Split_splitStringToQRinput(const char *string, QRinput *input, + QRencodeMode hint, int casesensitive) +{ + char *newstr; + int ret; + + if(string == NULL || *string == '\0') { + errno = EINVAL; + return -1; + } + if(!casesensitive) { + newstr = dupAndToUpper(string, hint); + if(newstr == NULL) return -1; + ret = Split_splitString(newstr, input, hint); + free(newstr); + } else { + ret = Split_splitString(string, input, hint); + } + + return ret; +} diff --git a/contrib/qrencode-win32/split.h b/contrib/qrencode-win32/split.h new file mode 100644 index 0000000..b2cdbe5 --- /dev/null +++ b/contrib/qrencode-win32/split.h @@ -0,0 +1,47 @@ +/* + * qrencode - QR Code encoder + * + * Input data splitter. + * Copyright (C) 2006-2011 Kentaro Fukuchi <kentaro@fukuchi.org> + * + * The following data / specifications are taken from + * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004) + * or + * "Automatic identification and data capture techniques -- + * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __SPLIT_H__ +#define __SPLIT_H__ + +#include "qrencode.h" + +/** + * Split the input string (null terminated) into QRinput. + * @param string input string + * @param hint give QR_MODE_KANJI if the input string contains Kanji character encoded in Shift-JIS. If not, give QR_MODE_8. + * @param casesensitive 0 for case-insensitive encoding (all alphabet characters are replaced to UPPER-CASE CHARACTERS. + * @retval 0 success. + * @retval -1 an error occurred. errno is set to indicate the error. See + * Exceptions for the details. + * @throw EINVAL invalid input object. + * @throw ENOMEM unable to allocate memory for input objects. + */ +extern int Split_splitStringToQRinput(const char *string, QRinput *input, + QRencodeMode hint, int casesensitive); + +#endif /* __SPLIT_H__ */ diff --git a/contrib/qrencode-win32/tests/Makefile.am b/contrib/qrencode-win32/tests/Makefile.am new file mode 100644 index 0000000..92eda90 --- /dev/null +++ b/contrib/qrencode-win32/tests/Makefile.am @@ -0,0 +1,72 @@ +if HAVE_SDL +sdlPROGRAMS = view_qrcode +endif + +noinst_PROGRAMS = test_qrinput test_bitstream test_estimatebit \ + test_qrspec test_rs test_qrencode prof_qrencode \ + test_mqrspec test_split test_monkey test_mask test_mmask \ + create_frame_pattern create_mqr_frame_pattern \ + $(sdlPROGRAMS) +noinst_LIBRARIES = libdecoder.a +DECODER_LIBS = libdecoder.a $(LIBICONV) +noinst_HEADERS = common.h +if HAVE_LIBPTHREAD +noinst_PROGRAMS += pthread_qrencode +endif + +EXTRA_DIST = frame + +libdecoder_a_SOURCES = decoder.c decoder.h + +test_qrinput_SOURCES = test_qrinput.c +test_qrinput_LDADD = ../libqrencode.la $(DECODER_LIBS) + +test_bitstream_SOURCES = test_bitstream.c +test_bitstream_LDADD = ../libqrencode.la + +test_estimatebit_SOURCES = test_estimatebit.c +test_estimatebit_LDADD = ../libqrencode.la + +test_qrspec_SOURCES = test_qrspec.c +test_qrspec_LDADD = ../libqrencode.la $(DECODER_LIBS) + +test_mqrspec_SOURCES = test_mqrspec.c +test_mqrspec_LDADD = ../libqrencode.la $(DECODER_LIBS) + +test_rs_SOURCES = test_rs.c +test_rs_LDADD = ../libqrencode.la + +test_qrencode_SOURCES = test_qrencode.c +test_qrencode_LDADD = ../libqrencode.la $(DECODER_LIBS) + +test_split_SOURCES = test_split.c +test_split_LDADD = ../libqrencode.la + +test_monkey_SOURCES = test_monkey.c +test_monkey_LDADD = ../libqrencode.la $(DECODER_LIBS) + +test_mask_SOURCES = test_mask.c +test_mask_LDADD = ../libqrencode.la $(DECODER_LIBS) + +test_mmask_SOURCES = test_mmask.c +test_mmask_LDADD = ../libqrencode.la $(DECODER_LIBS) + +prof_qrencode_SOURCES = prof_qrencode.c +prof_qrencode_LDADD = ../libqrencode.la + +pthread_qrencode_SOURCES = pthread_qrencode.c +pthread_qrencode_LDADD = ../libqrencode.la $(LIBPTHREAD) + +create_frame_pattern_SOURCES = create_frame_pattern.c +create_frame_pattern_CFLAGS = $(png_CFLAGS) +create_frame_pattern_LDADD = ../libqrencode.la $(png_LIBS) + +create_mqr_frame_pattern_SOURCES = create_mqr_frame_pattern.c +create_mqr_frame_pattern_CFLAGS = $(png_CFLAGS) +create_mqr_frame_pattern_LDADD = ../libqrencode.la $(png_LIBS) + +if HAVE_SDL +view_qrcode_SOURCES = view_qrcode.c +view_qrcode_CFLAGS= $(SDL_CFLAGS) +view_qrcode_LDADD = ../libqrencode.la $(SDL_LIBS) +endif diff --git a/contrib/qrencode-win32/tests/Makefile.in b/contrib/qrencode-win32/tests/Makefile.in new file mode 100644 index 0000000..058c39d --- /dev/null +++ b/contrib/qrencode-win32/tests/Makefile.in @@ -0,0 +1,858 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 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 = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +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@ +target_triplet = @target@ +noinst_PROGRAMS = test_qrinput$(EXEEXT) test_bitstream$(EXEEXT) \ + test_estimatebit$(EXEEXT) test_qrspec$(EXEEXT) \ + test_rs$(EXEEXT) test_qrencode$(EXEEXT) prof_qrencode$(EXEEXT) \ + test_mqrspec$(EXEEXT) test_split$(EXEEXT) test_monkey$(EXEEXT) \ + test_mask$(EXEEXT) test_mmask$(EXEEXT) \ + create_frame_pattern$(EXEEXT) \ + create_mqr_frame_pattern$(EXEEXT) $(am__EXEEXT_1) \ + $(am__EXEEXT_2) +@HAVE_LIBPTHREAD_TRUE@am__append_1 = pthread_qrencode +subdir = tests +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(top_srcdir)/use/depcomp $(noinst_HEADERS) +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +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 = +libdecoder_a_AR = $(AR) $(ARFLAGS) +libdecoder_a_LIBADD = +am_libdecoder_a_OBJECTS = decoder.$(OBJEXT) +libdecoder_a_OBJECTS = $(am_libdecoder_a_OBJECTS) +@HAVE_SDL_TRUE@am__EXEEXT_1 = view_qrcode$(EXEEXT) +@HAVE_LIBPTHREAD_TRUE@am__EXEEXT_2 = pthread_qrencode$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) +am_create_frame_pattern_OBJECTS = \ + create_frame_pattern-create_frame_pattern.$(OBJEXT) +create_frame_pattern_OBJECTS = $(am_create_frame_pattern_OBJECTS) +am__DEPENDENCIES_1 = +create_frame_pattern_DEPENDENCIES = ../libqrencode.la \ + $(am__DEPENDENCIES_1) +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 = +create_frame_pattern_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(create_frame_pattern_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_create_mqr_frame_pattern_OBJECTS = \ + create_mqr_frame_pattern-create_mqr_frame_pattern.$(OBJEXT) +create_mqr_frame_pattern_OBJECTS = \ + $(am_create_mqr_frame_pattern_OBJECTS) +create_mqr_frame_pattern_DEPENDENCIES = ../libqrencode.la \ + $(am__DEPENDENCIES_1) +create_mqr_frame_pattern_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(create_mqr_frame_pattern_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_prof_qrencode_OBJECTS = prof_qrencode.$(OBJEXT) +prof_qrencode_OBJECTS = $(am_prof_qrencode_OBJECTS) +prof_qrencode_DEPENDENCIES = ../libqrencode.la +am_pthread_qrencode_OBJECTS = pthread_qrencode.$(OBJEXT) +pthread_qrencode_OBJECTS = $(am_pthread_qrencode_OBJECTS) +pthread_qrencode_DEPENDENCIES = ../libqrencode.la \ + $(am__DEPENDENCIES_1) +am_test_bitstream_OBJECTS = test_bitstream.$(OBJEXT) +test_bitstream_OBJECTS = $(am_test_bitstream_OBJECTS) +test_bitstream_DEPENDENCIES = ../libqrencode.la +am_test_estimatebit_OBJECTS = test_estimatebit.$(OBJEXT) +test_estimatebit_OBJECTS = $(am_test_estimatebit_OBJECTS) +test_estimatebit_DEPENDENCIES = ../libqrencode.la +am_test_mask_OBJECTS = test_mask.$(OBJEXT) +test_mask_OBJECTS = $(am_test_mask_OBJECTS) +am__DEPENDENCIES_2 = libdecoder.a $(am__DEPENDENCIES_1) +test_mask_DEPENDENCIES = ../libqrencode.la $(am__DEPENDENCIES_2) +am_test_mmask_OBJECTS = test_mmask.$(OBJEXT) +test_mmask_OBJECTS = $(am_test_mmask_OBJECTS) +test_mmask_DEPENDENCIES = ../libqrencode.la $(am__DEPENDENCIES_2) +am_test_monkey_OBJECTS = test_monkey.$(OBJEXT) +test_monkey_OBJECTS = $(am_test_monkey_OBJECTS) +test_monkey_DEPENDENCIES = ../libqrencode.la $(am__DEPENDENCIES_2) +am_test_mqrspec_OBJECTS = test_mqrspec.$(OBJEXT) +test_mqrspec_OBJECTS = $(am_test_mqrspec_OBJECTS) +test_mqrspec_DEPENDENCIES = ../libqrencode.la $(am__DEPENDENCIES_2) +am_test_qrencode_OBJECTS = test_qrencode.$(OBJEXT) +test_qrencode_OBJECTS = $(am_test_qrencode_OBJECTS) +test_qrencode_DEPENDENCIES = ../libqrencode.la $(am__DEPENDENCIES_2) +am_test_qrinput_OBJECTS = test_qrinput.$(OBJEXT) +test_qrinput_OBJECTS = $(am_test_qrinput_OBJECTS) +test_qrinput_DEPENDENCIES = ../libqrencode.la $(am__DEPENDENCIES_2) +am_test_qrspec_OBJECTS = test_qrspec.$(OBJEXT) +test_qrspec_OBJECTS = $(am_test_qrspec_OBJECTS) +test_qrspec_DEPENDENCIES = ../libqrencode.la $(am__DEPENDENCIES_2) +am_test_rs_OBJECTS = test_rs.$(OBJEXT) +test_rs_OBJECTS = $(am_test_rs_OBJECTS) +test_rs_DEPENDENCIES = ../libqrencode.la +am_test_split_OBJECTS = test_split.$(OBJEXT) +test_split_OBJECTS = $(am_test_split_OBJECTS) +test_split_DEPENDENCIES = ../libqrencode.la +am__view_qrcode_SOURCES_DIST = view_qrcode.c +@HAVE_SDL_TRUE@am_view_qrcode_OBJECTS = \ +@HAVE_SDL_TRUE@ view_qrcode-view_qrcode.$(OBJEXT) +view_qrcode_OBJECTS = $(am_view_qrcode_OBJECTS) +@HAVE_SDL_TRUE@view_qrcode_DEPENDENCIES = ../libqrencode.la \ +@HAVE_SDL_TRUE@ $(am__DEPENDENCIES_1) +view_qrcode_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(view_qrcode_CFLAGS) \ + $(CFLAGS) $(AM_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)/use/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +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 = $(libdecoder_a_SOURCES) $(create_frame_pattern_SOURCES) \ + $(create_mqr_frame_pattern_SOURCES) $(prof_qrencode_SOURCES) \ + $(pthread_qrencode_SOURCES) $(test_bitstream_SOURCES) \ + $(test_estimatebit_SOURCES) $(test_mask_SOURCES) \ + $(test_mmask_SOURCES) $(test_monkey_SOURCES) \ + $(test_mqrspec_SOURCES) $(test_qrencode_SOURCES) \ + $(test_qrinput_SOURCES) $(test_qrspec_SOURCES) \ + $(test_rs_SOURCES) $(test_split_SOURCES) \ + $(view_qrcode_SOURCES) +DIST_SOURCES = $(libdecoder_a_SOURCES) $(create_frame_pattern_SOURCES) \ + $(create_mqr_frame_pattern_SOURCES) $(prof_qrencode_SOURCES) \ + $(pthread_qrencode_SOURCES) $(test_bitstream_SOURCES) \ + $(test_estimatebit_SOURCES) $(test_mask_SOURCES) \ + $(test_mmask_SOURCES) $(test_monkey_SOURCES) \ + $(test_mqrspec_SOURCES) $(test_qrencode_SOURCES) \ + $(test_qrinput_SOURCES) $(test_qrspec_SOURCES) \ + $(test_rs_SOURCES) $(test_split_SOURCES) \ + $(am__view_qrcode_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_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 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBOBJS = @LIBOBJS@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBOBJS = @LTLIBOBJS@ +MAJOR_VERSION = @MAJOR_VERSION@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MICRO_VERSION = @MICRO_VERSION@ +MINOR_VERSION = @MINOR_VERSION@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_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@ +png_CFLAGS = @png_CFLAGS@ +png_LIBS = @png_LIBS@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@HAVE_SDL_TRUE@sdlPROGRAMS = view_qrcode +noinst_LIBRARIES = libdecoder.a +DECODER_LIBS = libdecoder.a $(LIBICONV) +noinst_HEADERS = common.h +EXTRA_DIST = frame +libdecoder_a_SOURCES = decoder.c decoder.h +test_qrinput_SOURCES = test_qrinput.c +test_qrinput_LDADD = ../libqrencode.la $(DECODER_LIBS) +test_bitstream_SOURCES = test_bitstream.c +test_bitstream_LDADD = ../libqrencode.la +test_estimatebit_SOURCES = test_estimatebit.c +test_estimatebit_LDADD = ../libqrencode.la +test_qrspec_SOURCES = test_qrspec.c +test_qrspec_LDADD = ../libqrencode.la $(DECODER_LIBS) +test_mqrspec_SOURCES = test_mqrspec.c +test_mqrspec_LDADD = ../libqrencode.la $(DECODER_LIBS) +test_rs_SOURCES = test_rs.c +test_rs_LDADD = ../libqrencode.la +test_qrencode_SOURCES = test_qrencode.c +test_qrencode_LDADD = ../libqrencode.la $(DECODER_LIBS) +test_split_SOURCES = test_split.c +test_split_LDADD = ../libqrencode.la +test_monkey_SOURCES = test_monkey.c +test_monkey_LDADD = ../libqrencode.la $(DECODER_LIBS) +test_mask_SOURCES = test_mask.c +test_mask_LDADD = ../libqrencode.la $(DECODER_LIBS) +test_mmask_SOURCES = test_mmask.c +test_mmask_LDADD = ../libqrencode.la $(DECODER_LIBS) +prof_qrencode_SOURCES = prof_qrencode.c +prof_qrencode_LDADD = ../libqrencode.la +pthread_qrencode_SOURCES = pthread_qrencode.c +pthread_qrencode_LDADD = ../libqrencode.la $(LIBPTHREAD) +create_frame_pattern_SOURCES = create_frame_pattern.c +create_frame_pattern_CFLAGS = $(png_CFLAGS) +create_frame_pattern_LDADD = ../libqrencode.la $(png_LIBS) +create_mqr_frame_pattern_SOURCES = create_mqr_frame_pattern.c +create_mqr_frame_pattern_CFLAGS = $(png_CFLAGS) +create_mqr_frame_pattern_LDADD = ../libqrencode.la $(png_LIBS) +@HAVE_SDL_TRUE@view_qrcode_SOURCES = view_qrcode.c +@HAVE_SDL_TRUE@view_qrcode_CFLAGS = $(SDL_CFLAGS) +@HAVE_SDL_TRUE@view_qrcode_LDADD = ../libqrencode.la $(SDL_LIBS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .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 tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +libdecoder.a: $(libdecoder_a_OBJECTS) $(libdecoder_a_DEPENDENCIES) $(EXTRA_libdecoder_a_DEPENDENCIES) + $(AM_V_at)-rm -f libdecoder.a + $(AM_V_AR)$(libdecoder_a_AR) libdecoder.a $(libdecoder_a_OBJECTS) $(libdecoder_a_LIBADD) + $(AM_V_at)$(RANLIB) libdecoder.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 + +create_frame_pattern$(EXEEXT): $(create_frame_pattern_OBJECTS) $(create_frame_pattern_DEPENDENCIES) $(EXTRA_create_frame_pattern_DEPENDENCIES) + @rm -f create_frame_pattern$(EXEEXT) + $(AM_V_CCLD)$(create_frame_pattern_LINK) $(create_frame_pattern_OBJECTS) $(create_frame_pattern_LDADD) $(LIBS) + +create_mqr_frame_pattern$(EXEEXT): $(create_mqr_frame_pattern_OBJECTS) $(create_mqr_frame_pattern_DEPENDENCIES) $(EXTRA_create_mqr_frame_pattern_DEPENDENCIES) + @rm -f create_mqr_frame_pattern$(EXEEXT) + $(AM_V_CCLD)$(create_mqr_frame_pattern_LINK) $(create_mqr_frame_pattern_OBJECTS) $(create_mqr_frame_pattern_LDADD) $(LIBS) + +prof_qrencode$(EXEEXT): $(prof_qrencode_OBJECTS) $(prof_qrencode_DEPENDENCIES) $(EXTRA_prof_qrencode_DEPENDENCIES) + @rm -f prof_qrencode$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(prof_qrencode_OBJECTS) $(prof_qrencode_LDADD) $(LIBS) + +pthread_qrencode$(EXEEXT): $(pthread_qrencode_OBJECTS) $(pthread_qrencode_DEPENDENCIES) $(EXTRA_pthread_qrencode_DEPENDENCIES) + @rm -f pthread_qrencode$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pthread_qrencode_OBJECTS) $(pthread_qrencode_LDADD) $(LIBS) + +test_bitstream$(EXEEXT): $(test_bitstream_OBJECTS) $(test_bitstream_DEPENDENCIES) $(EXTRA_test_bitstream_DEPENDENCIES) + @rm -f test_bitstream$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_bitstream_OBJECTS) $(test_bitstream_LDADD) $(LIBS) + +test_estimatebit$(EXEEXT): $(test_estimatebit_OBJECTS) $(test_estimatebit_DEPENDENCIES) $(EXTRA_test_estimatebit_DEPENDENCIES) + @rm -f test_estimatebit$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_estimatebit_OBJECTS) $(test_estimatebit_LDADD) $(LIBS) + +test_mask$(EXEEXT): $(test_mask_OBJECTS) $(test_mask_DEPENDENCIES) $(EXTRA_test_mask_DEPENDENCIES) + @rm -f test_mask$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_mask_OBJECTS) $(test_mask_LDADD) $(LIBS) + +test_mmask$(EXEEXT): $(test_mmask_OBJECTS) $(test_mmask_DEPENDENCIES) $(EXTRA_test_mmask_DEPENDENCIES) + @rm -f test_mmask$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_mmask_OBJECTS) $(test_mmask_LDADD) $(LIBS) + +test_monkey$(EXEEXT): $(test_monkey_OBJECTS) $(test_monkey_DEPENDENCIES) $(EXTRA_test_monkey_DEPENDENCIES) + @rm -f test_monkey$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_monkey_OBJECTS) $(test_monkey_LDADD) $(LIBS) + +test_mqrspec$(EXEEXT): $(test_mqrspec_OBJECTS) $(test_mqrspec_DEPENDENCIES) $(EXTRA_test_mqrspec_DEPENDENCIES) + @rm -f test_mqrspec$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_mqrspec_OBJECTS) $(test_mqrspec_LDADD) $(LIBS) + +test_qrencode$(EXEEXT): $(test_qrencode_OBJECTS) $(test_qrencode_DEPENDENCIES) $(EXTRA_test_qrencode_DEPENDENCIES) + @rm -f test_qrencode$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_qrencode_OBJECTS) $(test_qrencode_LDADD) $(LIBS) + +test_qrinput$(EXEEXT): $(test_qrinput_OBJECTS) $(test_qrinput_DEPENDENCIES) $(EXTRA_test_qrinput_DEPENDENCIES) + @rm -f test_qrinput$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_qrinput_OBJECTS) $(test_qrinput_LDADD) $(LIBS) + +test_qrspec$(EXEEXT): $(test_qrspec_OBJECTS) $(test_qrspec_DEPENDENCIES) $(EXTRA_test_qrspec_DEPENDENCIES) + @rm -f test_qrspec$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_qrspec_OBJECTS) $(test_qrspec_LDADD) $(LIBS) + +test_rs$(EXEEXT): $(test_rs_OBJECTS) $(test_rs_DEPENDENCIES) $(EXTRA_test_rs_DEPENDENCIES) + @rm -f test_rs$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_rs_OBJECTS) $(test_rs_LDADD) $(LIBS) + +test_split$(EXEEXT): $(test_split_OBJECTS) $(test_split_DEPENDENCIES) $(EXTRA_test_split_DEPENDENCIES) + @rm -f test_split$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_split_OBJECTS) $(test_split_LDADD) $(LIBS) + +view_qrcode$(EXEEXT): $(view_qrcode_OBJECTS) $(view_qrcode_DEPENDENCIES) $(EXTRA_view_qrcode_DEPENDENCIES) + @rm -f view_qrcode$(EXEEXT) + $(AM_V_CCLD)$(view_qrcode_LINK) $(view_qrcode_OBJECTS) $(view_qrcode_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_frame_pattern-create_frame_pattern.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_mqr_frame_pattern-create_mqr_frame_pattern.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decoder.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prof_qrencode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pthread_qrencode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bitstream.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_estimatebit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_mask.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_mmask.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_monkey.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_mqrspec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_qrencode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_qrinput.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_qrspec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_rs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_split.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/view_qrcode-view_qrcode.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +create_frame_pattern-create_frame_pattern.o: create_frame_pattern.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_frame_pattern_CFLAGS) $(CFLAGS) -MT create_frame_pattern-create_frame_pattern.o -MD -MP -MF $(DEPDIR)/create_frame_pattern-create_frame_pattern.Tpo -c -o create_frame_pattern-create_frame_pattern.o `test -f 'create_frame_pattern.c' || echo '$(srcdir)/'`create_frame_pattern.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/create_frame_pattern-create_frame_pattern.Tpo $(DEPDIR)/create_frame_pattern-create_frame_pattern.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_frame_pattern.c' object='create_frame_pattern-create_frame_pattern.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_frame_pattern_CFLAGS) $(CFLAGS) -c -o create_frame_pattern-create_frame_pattern.o `test -f 'create_frame_pattern.c' || echo '$(srcdir)/'`create_frame_pattern.c + +create_frame_pattern-create_frame_pattern.obj: create_frame_pattern.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_frame_pattern_CFLAGS) $(CFLAGS) -MT create_frame_pattern-create_frame_pattern.obj -MD -MP -MF $(DEPDIR)/create_frame_pattern-create_frame_pattern.Tpo -c -o create_frame_pattern-create_frame_pattern.obj `if test -f 'create_frame_pattern.c'; then $(CYGPATH_W) 'create_frame_pattern.c'; else $(CYGPATH_W) '$(srcdir)/create_frame_pattern.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/create_frame_pattern-create_frame_pattern.Tpo $(DEPDIR)/create_frame_pattern-create_frame_pattern.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_frame_pattern.c' object='create_frame_pattern-create_frame_pattern.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_frame_pattern_CFLAGS) $(CFLAGS) -c -o create_frame_pattern-create_frame_pattern.obj `if test -f 'create_frame_pattern.c'; then $(CYGPATH_W) 'create_frame_pattern.c'; else $(CYGPATH_W) '$(srcdir)/create_frame_pattern.c'; fi` + +create_mqr_frame_pattern-create_mqr_frame_pattern.o: create_mqr_frame_pattern.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_mqr_frame_pattern_CFLAGS) $(CFLAGS) -MT create_mqr_frame_pattern-create_mqr_frame_pattern.o -MD -MP -MF $(DEPDIR)/create_mqr_frame_pattern-create_mqr_frame_pattern.Tpo -c -o create_mqr_frame_pattern-create_mqr_frame_pattern.o `test -f 'create_mqr_frame_pattern.c' || echo '$(srcdir)/'`create_mqr_frame_pattern.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/create_mqr_frame_pattern-create_mqr_frame_pattern.Tpo $(DEPDIR)/create_mqr_frame_pattern-create_mqr_frame_pattern.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_mqr_frame_pattern.c' object='create_mqr_frame_pattern-create_mqr_frame_pattern.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_mqr_frame_pattern_CFLAGS) $(CFLAGS) -c -o create_mqr_frame_pattern-create_mqr_frame_pattern.o `test -f 'create_mqr_frame_pattern.c' || echo '$(srcdir)/'`create_mqr_frame_pattern.c + +create_mqr_frame_pattern-create_mqr_frame_pattern.obj: create_mqr_frame_pattern.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_mqr_frame_pattern_CFLAGS) $(CFLAGS) -MT create_mqr_frame_pattern-create_mqr_frame_pattern.obj -MD -MP -MF $(DEPDIR)/create_mqr_frame_pattern-create_mqr_frame_pattern.Tpo -c -o create_mqr_frame_pattern-create_mqr_frame_pattern.obj `if test -f 'create_mqr_frame_pattern.c'; then $(CYGPATH_W) 'create_mqr_frame_pattern.c'; else $(CYGPATH_W) '$(srcdir)/create_mqr_frame_pattern.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/create_mqr_frame_pattern-create_mqr_frame_pattern.Tpo $(DEPDIR)/create_mqr_frame_pattern-create_mqr_frame_pattern.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='create_mqr_frame_pattern.c' object='create_mqr_frame_pattern-create_mqr_frame_pattern.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(create_mqr_frame_pattern_CFLAGS) $(CFLAGS) -c -o create_mqr_frame_pattern-create_mqr_frame_pattern.obj `if test -f 'create_mqr_frame_pattern.c'; then $(CYGPATH_W) 'create_mqr_frame_pattern.c'; else $(CYGPATH_W) '$(srcdir)/create_mqr_frame_pattern.c'; fi` + +view_qrcode-view_qrcode.o: view_qrcode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(view_qrcode_CFLAGS) $(CFLAGS) -MT view_qrcode-view_qrcode.o -MD -MP -MF $(DEPDIR)/view_qrcode-view_qrcode.Tpo -c -o view_qrcode-view_qrcode.o `test -f 'view_qrcode.c' || echo '$(srcdir)/'`view_qrcode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/view_qrcode-view_qrcode.Tpo $(DEPDIR)/view_qrcode-view_qrcode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view_qrcode.c' object='view_qrcode-view_qrcode.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(view_qrcode_CFLAGS) $(CFLAGS) -c -o view_qrcode-view_qrcode.o `test -f 'view_qrcode.c' || echo '$(srcdir)/'`view_qrcode.c + +view_qrcode-view_qrcode.obj: view_qrcode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(view_qrcode_CFLAGS) $(CFLAGS) -MT view_qrcode-view_qrcode.obj -MD -MP -MF $(DEPDIR)/view_qrcode-view_qrcode.Tpo -c -o view_qrcode-view_qrcode.obj `if test -f 'view_qrcode.c'; then $(CYGPATH_W) 'view_qrcode.c'; else $(CYGPATH_W) '$(srcdir)/view_qrcode.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/view_qrcode-view_qrcode.Tpo $(DEPDIR)/view_qrcode-view_qrcode.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='view_qrcode.c' object='view_qrcode-view_qrcode.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(view_qrcode_CFLAGS) $(CFLAGS) -c -o view_qrcode-view_qrcode.obj `if test -f 'view_qrcode.c'; then $(CYGPATH_W) 'view_qrcode.c'; else $(CYGPATH_W) '$(srcdir)/view_qrcode.c'; fi` + +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) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + 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 + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/contrib/qrencode-win32/tests/common.h b/contrib/qrencode-win32/tests/common.h new file mode 100644 index 0000000..24903a2 --- /dev/null +++ b/contrib/qrencode-win32/tests/common.h @@ -0,0 +1,201 @@ +/* + * common part of test units. + */ + +#ifndef __COMMON_H__ +#define __COMMON_H__ + +#include <stdlib.h> +#include "../config.h" +#include "../qrencode.h" +#include "../qrinput.h" +#include "../bitstream.h" +#include "../qrencode_inner.h" + +#define testStart(__arg__) (testStartReal(__func__, __arg__)) +#define testEndExp(__arg__) (testEnd(!(__arg__))) + +static int tests = 0; +static int failed = 0; +static int assertionFailed = 0; +static int assertionNum = 0; +static const char *testName = NULL; +static const char *testFunc = NULL; +char levelChar[4] = {'L', 'M', 'Q', 'H'}; +const char *modeStr[5] = {"nm", "an", "8", "kj", "st"}; + +void printQRinput(QRinput *input) +{ + QRinput_List *list; + int i; + + list = input->head; + while(list != NULL) { + for(i=0; i<list->size; i++) { + printf("0x%02x,", list->data[i]); + } + list = list->next; + } + printf("\n"); +} + +void printQRinputInfo(QRinput *input) +{ + QRinput_List *list; + BitStream *b; + int i; + + printf("QRinput info:\n"); + printf(" version: %d\n", input->version); + printf(" level : %c\n", levelChar[input->level]); + list = input->head; + i = 0; + while(list != NULL) { + i++; + list = list->next; + } + printf(" chunks: %d\n", i); + b = QRinput_mergeBitStream(input); + if(b != NULL) { + printf(" bitstream-size: %d\n", BitStream_size(b)); + BitStream_free(b); + } + + list = input->head; + i = 0; + while(list != NULL) { + printf("\t#%d: mode = %s, size = %d\n", i, modeStr[list->mode], list->size); + i++; + list = list->next; + } +} + +void printQRinputStruct(QRinput_Struct *s) +{ + QRinput_InputList *list; + int i = 1; + + printf("Struct size: %d\n", s->size); + printf("Struct parity: %08x\n", s->parity); + for(list = s->head; list != NULL; list = list->next) { + printf("Symbol %d - ", i); + printQRinputInfo(list->input); + i++; + } +} + +void printFrame(int width, unsigned char *frame) +{ + int x, y; + + for(y=0; y<width; y++) { + for(x=0; x<width; x++) { + printf("%02x ", *frame++); + } + printf("\n"); + } +} + +void printQRcode(QRcode *code) +{ + printFrame(code->width, code->data); +} + +void testStartReal(const char *func, const char *name) +{ + tests++; + testName = name; + testFunc = func; + assertionFailed = 0; + assertionNum = 0; + printf("_____%d: %s: %s...\n", tests, func, name); +} + +void testEnd(int result) +{ + printf(".....%d: %s: %s, ", tests, testFunc, testName); + if(result) { + puts("FAILED."); + failed++; + } else { + puts("PASSED."); + } +} + +#define assert_exp(__exp__, ...) \ +{assertionNum++;if(!(__exp__)) {assertionFailed++; printf(__VA_ARGS__);}} + +#define assert_zero(__exp__, ...) assert_exp((__exp__) == 0, __VA_ARGS__) +#define assert_nonzero(__exp__, ...) assert_exp((__exp__) != 0, __VA_ARGS__) +#define assert_null(__ptr__, ...) assert_exp((__ptr__) == NULL, __VA_ARGS__) +#define assert_nonnull(__ptr__, ...) assert_exp((__ptr__) != NULL, __VA_ARGS__) +#define assert_equal(__e1__, __e2__, ...) assert_exp((__e1__) == (__e2__), __VA_ARGS__) +#define assert_notequal(__e1__, __e2__, ...) assert_exp((__e1__) != (__e2__), __VA_ARGS__) +#define assert_nothing(__exp__, ...) {printf(__VA_ARGS__); __exp__;} + +void testFinish(void) +{ + printf(".....%d: %s: %s, ", tests, testFunc, testName); + if(assertionFailed) { + printf("FAILED. (%d assertions failed.)\n", assertionFailed); + failed++; + } else { + printf("PASSED. (%d assertions passed.)\n", assertionNum); + } +} + +void report() +{ + printf("Total %d tests, %d fails.\n", tests, failed); + if(failed) exit(-1); +} + +int ncmpBin(char *correct, BitStream *bstream, int len) +{ + int i, bit; + char *p; + + if(len != BitStream_size(bstream)) { + printf("Length is not match: %d, %d expected.\n", BitStream_size(bstream), len); + return -1; + } + + p = correct; + i = 0; + while(*p != '\0') { + while(*p == ' ') { + p++; + } + bit = (*p == '1')?1:0; + if(bstream->data[i] != bit) return -1; + i++; + p++; + if(i == len) break; + } + + return 0; +} + +int cmpBin(char *correct, BitStream *bstream) +{ + int len = 0; + char *p; + + + for(p = correct; *p != '\0'; p++) { + if(*p != ' ') len++; + } + return ncmpBin(correct, bstream, len); +} + +void printBstream(BitStream *bstream) +{ + int i, size; + + size = BitStream_size(bstream); + for(i=0; i<size; i++) { + printf(bstream->data[i]?"1":"0"); + } + printf("\n"); +} +#endif /* __COMMON_H__ */ diff --git a/contrib/qrencode-win32/tests/create_frame_pattern.c b/contrib/qrencode-win32/tests/create_frame_pattern.c new file mode 100644 index 0000000..786309f --- /dev/null +++ b/contrib/qrencode-win32/tests/create_frame_pattern.c @@ -0,0 +1,170 @@ +/* + * This tool creates a frame pattern data for debug purpose used by + * test_qrspec. test_qrspec and create_frame_pattern uses the same function + * of libqrencode. This means the test is meaningless if test_qrspec is run + * with a pattern data created by create_frame_pattern of the same version. + * In order to test it correctly, create a pattern data by the tool of the + * previous version, or use the frame data attached to the package. + */ + +#include <stdio.h> +#include <string.h> +#include <png.h> +#include "common.h" +#include "../qrspec.h" + +void append_pattern(int version, FILE *fp) +{ + int width; + unsigned char *frame; + + frame = QRspec_newFrame(version); + width = QRspec_getWidth(version); + fwrite(frame, 1, width * width, fp); + free(frame); +} + +static int writePNG(unsigned char *frame, int width, const char *outfile) +{ + static FILE *fp; + png_structp png_ptr; + png_infop info_ptr; + unsigned char *row, *p, *q; + int x, y, xx, yy, bit; + int realwidth; + const int margin = 0; + const int size = 1; + + realwidth = (width + margin * 2) * size; + row = (unsigned char *)malloc((realwidth + 7) / 8); + if(row == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + + if(outfile[0] == '-' && outfile[1] == '\0') { + fp = stdout; + } else { + fp = fopen(outfile, "wb"); + if(fp == NULL) { + fprintf(stderr, "Failed to create file: %s\n", outfile); + perror(NULL); + exit(EXIT_FAILURE); + } + } + + png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if(png_ptr == NULL) { + fclose(fp); + fprintf(stderr, "Failed to initialize PNG writer.\n"); + exit(EXIT_FAILURE); + } + + info_ptr = png_create_info_struct(png_ptr); + if(info_ptr == NULL) { + fclose(fp); + fprintf(stderr, "Failed to initialize PNG write.\n"); + exit(EXIT_FAILURE); + } + + if(setjmp(png_jmpbuf(png_ptr))) { + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(fp); + fprintf(stderr, "Failed to write PNG image.\n"); + exit(EXIT_FAILURE); + } + + png_init_io(png_ptr, fp); + png_set_IHDR(png_ptr, info_ptr, + realwidth, realwidth, + 1, + PNG_COLOR_TYPE_GRAY, + PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + png_write_info(png_ptr, info_ptr); + + /* top margin */ + memset(row, 0xff, (realwidth + 7) / 8); + for(y=0; y<margin * size; y++) { + png_write_row(png_ptr, row); + } + + /* data */ + p = frame; + for(y=0; y<width; y++) { + bit = 7; + memset(row, 0xff, (realwidth + 7) / 8); + q = row; + q += margin * size / 8; + bit = 7 - (margin * size % 8); + for(x=0; x<width; x++) { + for(xx=0; xx<size; xx++) { + *q ^= (*p & 1) << bit; + bit--; + if(bit < 0) { + q++; + bit = 7; + } + } + p++; + } + for(yy=0; yy<size; yy++) { + png_write_row(png_ptr, row); + } + } + /* bottom margin */ + memset(row, 0xff, (realwidth + 7) / 8); + for(y=0; y<margin * size; y++) { + png_write_row(png_ptr, row); + } + + png_write_end(png_ptr, info_ptr); + png_destroy_write_struct(&png_ptr, &info_ptr); + + fclose(fp); + free(row); + + return 0; +} + +void write_pattern_image(int version, const char *filename) +{ + int width; + unsigned char *frame; + static char str[256]; + + frame = QRspec_newFrame(version); + width = QRspec_getWidth(version); + + snprintf(str, 256, "%s-%d.png", filename, version); + writePNG(frame, width, str); + free(frame); +} + +void write_pattern(const char *filename) +{ + FILE *fp; + int i; + + fp = fopen(filename, "wb"); + if(fp == NULL) { + perror("Failed to open a file to write:"); + abort(); + } + for(i=1; i<=QRSPEC_VERSION_MAX; i++) { + append_pattern(i, fp); + write_pattern_image(i, filename); + } + fclose(fp); +} + +int main(int argc, char **argv) +{ + if(argc < 2) { + printf("Create empty frame patterns.\nUsage: %s FILENAME\n", argv[0]); + exit(0); + } + write_pattern(argv[1]); + return 0; +} diff --git a/contrib/qrencode-win32/tests/create_mqr_frame_pattern.c b/contrib/qrencode-win32/tests/create_mqr_frame_pattern.c new file mode 100644 index 0000000..cad1f9c --- /dev/null +++ b/contrib/qrencode-win32/tests/create_mqr_frame_pattern.c @@ -0,0 +1,170 @@ +/* + * This tool creates a frame pattern data for debug purpose used by + * test_qrspec. test_qrspec and create_frame_pattern uses the same function + * of libqrencode. This means the test is meaningless if test_qrspec is run + * with a pattern data created by create_frame_pattern of the same version. + * In order to test it correctly, create a pattern data by the tool of the + * previous version, or use the frame data attached to the package. + */ + +#include <stdio.h> +#include <string.h> +#include <png.h> +#include "common.h" +#include "../mqrspec.h" + +void append_pattern(int version, FILE *fp) +{ + int width; + unsigned char *frame; + + frame = MQRspec_newFrame(version); + width = MQRspec_getWidth(version); + fwrite(frame, 1, width * width, fp); + free(frame); +} + +static int writePNG(unsigned char *frame, int width, const char *outfile) +{ + static FILE *fp; + png_structp png_ptr; + png_infop info_ptr; + unsigned char *row, *p, *q; + int x, y, xx, yy, bit; + int realwidth; + const int margin = 0; + const int size = 1; + + realwidth = (width + margin * 2) * size; + row = (unsigned char *)malloc((realwidth + 7) / 8); + if(row == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + + if(outfile[0] == '-' && outfile[1] == '\0') { + fp = stdout; + } else { + fp = fopen(outfile, "wb"); + if(fp == NULL) { + fprintf(stderr, "Failed to create file: %s\n", outfile); + perror(NULL); + exit(EXIT_FAILURE); + } + } + + png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if(png_ptr == NULL) { + fclose(fp); + fprintf(stderr, "Failed to initialize PNG writer.\n"); + exit(EXIT_FAILURE); + } + + info_ptr = png_create_info_struct(png_ptr); + if(info_ptr == NULL) { + fclose(fp); + fprintf(stderr, "Failed to initialize PNG write.\n"); + exit(EXIT_FAILURE); + } + + if(setjmp(png_jmpbuf(png_ptr))) { + png_destroy_write_struct(&png_ptr, &info_ptr); + fclose(fp); + fprintf(stderr, "Failed to write PNG image.\n"); + exit(EXIT_FAILURE); + } + + png_init_io(png_ptr, fp); + png_set_IHDR(png_ptr, info_ptr, + realwidth, realwidth, + 1, + PNG_COLOR_TYPE_GRAY, + PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, + PNG_FILTER_TYPE_DEFAULT); + png_write_info(png_ptr, info_ptr); + + /* top margin */ + memset(row, 0xff, (realwidth + 7) / 8); + for(y=0; y<margin * size; y++) { + png_write_row(png_ptr, row); + } + + /* data */ + p = frame; + for(y=0; y<width; y++) { + bit = 7; + memset(row, 0xff, (realwidth + 7) / 8); + q = row; + q += margin * size / 8; + bit = 7 - (margin * size % 8); + for(x=0; x<width; x++) { + for(xx=0; xx<size; xx++) { + *q ^= (*p & 1) << bit; + bit--; + if(bit < 0) { + q++; + bit = 7; + } + } + p++; + } + for(yy=0; yy<size; yy++) { + png_write_row(png_ptr, row); + } + } + /* bottom margin */ + memset(row, 0xff, (realwidth + 7) / 8); + for(y=0; y<margin * size; y++) { + png_write_row(png_ptr, row); + } + + png_write_end(png_ptr, info_ptr); + png_destroy_write_struct(&png_ptr, &info_ptr); + + fclose(fp); + free(row); + + return 0; +} + +void write_pattern_image(int version, const char *filename) +{ + int width; + unsigned char *frame; + static char str[256]; + + frame = MQRspec_newFrame(version); + width = MQRspec_getWidth(version); + + snprintf(str, 256, "%s-M%d.png", filename, version); + writePNG(frame, width, str); + free(frame); +} + +void write_pattern(const char *filename) +{ + FILE *fp; + int i; + + fp = fopen(filename, "wb"); + if(fp == NULL) { + perror("Failed to open a file to write:"); + abort(); + } + for(i=1; i<=MQRSPEC_VERSION_MAX; i++) { + append_pattern(i, fp); + write_pattern_image(i, filename); + } + fclose(fp); +} + +int main(int argc, char **argv) +{ + if(argc < 2) { + printf("Create empty frame patterns.\nUsage: %s FILENAME\n", argv[0]); + exit(0); + } + write_pattern(argv[1]); + return 0; +} diff --git a/contrib/qrencode-win32/tests/decoder.c b/contrib/qrencode-win32/tests/decoder.c new file mode 100644 index 0000000..cf3bc68 --- /dev/null +++ b/contrib/qrencode-win32/tests/decoder.c @@ -0,0 +1,1103 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <iconv.h> +#include "../qrspec.h" +#include "../bitstream.h" +#include "../mask.h" +#include "../mqrspec.h" +#include "../mmask.h" +#include "decoder.h" + +static unsigned int bitToInt(unsigned char *bits, int length) +{ + int i; + unsigned int val = 0; + + for(i=0; i<length; i++) { + val = val << 1; + val |= (bits[i] & 1); + } + + return val; +} + +DataChunk *DataChunk_new(QRencodeMode mode) +{ + DataChunk *chunk; + + chunk = (DataChunk *)calloc(1, sizeof(DataChunk)); + if(chunk == NULL) return NULL; + + chunk->mode = mode; + + return chunk; +} + +void DataChunk_free(DataChunk *chunk) +{ + if(chunk) { + if(chunk->data) free(chunk->data); + free(chunk); + } +} + +static int decodeLength(int *bits_length, unsigned char **bits, QRencodeMode mode, int version, int mqr) +{ + int i; + int length = 0; + int lbits; + + if(mqr) { + lbits = MQRspec_lengthIndicator(mode, version); + } else { + lbits = QRspec_lengthIndicator(mode, version); + } + + if(*bits_length < lbits) { + printf("Bit length is too short: %d\n", *bits_length); + return 0; + } + + length = 0; + for(i=0; i<lbits; i++) { + length = length << 1; + length += (*bits)[i]; + } + + *bits_length -= lbits; + *bits += lbits; + + return length; +} + +static DataChunk *decodeNum(int *bits_length, unsigned char **bits, int version, int mqr) +{ + int i; + int size, sizeInBit, words, remain; + unsigned char *p; + char *buf, *q; + unsigned int val; + DataChunk *chunk; + + size = decodeLength(bits_length, bits, QR_MODE_NUM, version, mqr); + if(size < 0) return NULL; + + words = size / 3; + remain = size - words * 3; + sizeInBit = words * 10; + if(remain == 2) { + sizeInBit += 7; + } else if(remain == 1) { + sizeInBit += 4; + } + if(*bits_length < sizeInBit) { + printf("Bit length is too short: %d, expected %d.\n", *bits_length, sizeInBit); + return NULL; + } + + buf = (char *)malloc(size + 1); + p = *bits; + q = buf; + for(i=0; i<words; i++) { + val = bitToInt(p, 10); + sprintf(q, "%03d", val); + p += 10; + q += 3; + } + if(remain == 2) { + val = bitToInt(p, 7); + sprintf(q, "%02d", val); + } else if(remain == 1) { + val = bitToInt(p, 4); + sprintf(q, "%1d", val); + } + buf[size] = '\0'; + + chunk = DataChunk_new(QR_MODE_NUM); + chunk->size = size; + chunk->data = (unsigned char *)buf; + *bits_length -= sizeInBit; + *bits += sizeInBit; + + return chunk; +} + +static const char decodeAnTable[45] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', '$', '%', '*', + '+', '-', '.', '/', ':' +}; + +static DataChunk *decodeAn(int *bits_length, unsigned char **bits, int version, int mqr) +{ + int i; + int size, sizeInBit, words, remain; + unsigned char *p; + char *buf, *q; + unsigned int val; + int ch, cl; + DataChunk *chunk; + + size = decodeLength(bits_length, bits, QR_MODE_AN, version, mqr); + if(size < 0) return NULL; + + words = size / 2; + remain = size - words * 2; + sizeInBit = words * 11 + remain * 6; + if(*bits_length < sizeInBit) { + printf("Bit length is too short: %d, expected %d.\n", *bits_length, sizeInBit); + return NULL; + } + + buf = (char *)malloc(size + 1); + p = *bits; + q = buf; + for(i=0; i<words; i++) { + val = bitToInt(p, 11); + ch = val / 45; + cl = val % 45; + sprintf(q, "%c%c", decodeAnTable[ch], decodeAnTable[cl]); + p += 11; + q += 2; + } + if(remain == 1) { + val = bitToInt(p, 6); + sprintf(q, "%c", decodeAnTable[val]); + } + + chunk = DataChunk_new(QR_MODE_AN); + chunk->size = size; + chunk->data = (unsigned char *)buf; + *bits_length -= sizeInBit; + *bits += sizeInBit; + + return chunk; +} + +static DataChunk *decode8(int *bits_length, unsigned char **bits, int version, int mqr) +{ + int i; + int size, sizeInBit; + unsigned char *p; + unsigned char *buf, *q; + DataChunk *chunk; + + size = decodeLength(bits_length, bits, QR_MODE_8, version, mqr); + if(size < 0) return NULL; + + sizeInBit = size * 8; + if(*bits_length < sizeInBit) { + printf("Bit length is too short: %d, expected %d.\n", *bits_length, sizeInBit); + return NULL; + } + + buf = (unsigned char *)malloc(size); + p = *bits; + q = buf; + for(i=0; i<size; i++) { + *q = (unsigned char)bitToInt(p, 8); + p += 8; + q += 1; + } + + chunk = DataChunk_new(QR_MODE_8); + chunk->size = size; + chunk->data = buf; + *bits_length -= sizeInBit; + *bits += sizeInBit; + + return chunk; +} + +static DataChunk *decodeKanji(int *bits_length, unsigned char **bits, int version, int mqr) +{ + int i; + int size, sizeInBit; + unsigned char *p; + char *buf, *q; + unsigned int val; + int ch, cl; + DataChunk *chunk; + + size = decodeLength(bits_length, bits, QR_MODE_KANJI, version, mqr); + if(size < 0) return NULL; + + sizeInBit = size * 13; + if(*bits_length < sizeInBit) { + printf("Bit length is too short: %d, expected %d.\n", *bits_length, sizeInBit); + return NULL; + } + + buf = (char *)malloc(size * 2 + 1); + p = *bits; + q = buf; + for(i=0; i<size; i++) { + val = bitToInt(p, 13); + ch = val / 0xc0; + cl = val - ch * 0xc0; + val = ch * 256 + cl; + if(val >= 0x1f00) { + val += 0xc140; + } else { + val += 0x8140; + } + sprintf(q, "%c%c", (val>>8) & 0xff, val & 0xff); + p += 13; + q += 2; + } + + chunk = DataChunk_new(QR_MODE_KANJI); + chunk->size = size * 2; + chunk->data = (unsigned char *)buf; + *bits_length -= sizeInBit; + *bits += sizeInBit; + + return chunk; +} + +static DataChunk *decodeChunk(int *bits_length, unsigned char **bits, int version) +{ + int val; + + if(*bits_length < 4) { + return NULL; + } + val = bitToInt(*bits, 4);; + *bits_length -= 4; + *bits += 4; + switch(val) { + case 0: + return NULL; + case 1: + return decodeNum(bits_length, bits, version, 0); + case 2: + return decodeAn(bits_length, bits, version, 0); + case 4: + return decode8(bits_length, bits, version, 0); + case 8: + return decodeKanji(bits_length, bits, version, 0); + default: + break; + } + + printf("Invalid mode in a chunk: %d\n", val); + + return NULL; +} + +static DataChunk *decodeChunkMQR(int *bits_length, unsigned char **bits, int version) +{ + int modebits, termbits; + unsigned int val; + + modebits = version - 1; + termbits = version * 2 + 1; + if(*bits_length >= termbits) { + val = bitToInt(*bits, termbits); + if(val == 0) { + *bits += termbits; + *bits_length -= termbits; + return NULL; + } + } else { + if(*bits_length < modebits) { + val = bitToInt(*bits, *bits_length); + } else { + val = bitToInt(*bits, modebits); + } + if(val == 0) { + return NULL; + } else { + printf("Terminating bits include 1-bit.\n"); + return NULL; + } + } + val = bitToInt(*bits, modebits); + if(version == 4 && val > 3) { + printf("Invalid mode number %d.\n", val); + } + *bits_length -= modebits; + *bits += modebits; + switch(val) { + case 0: + return decodeNum(bits_length, bits, version, 1); + case 1: + return decodeAn(bits_length, bits, version, 1); + case 2: + return decode8(bits_length, bits, version, 1); + case 3: + return decodeKanji(bits_length, bits, version, 1); + default: + break; + } + + printf("Invalid mode in a chunk: %d\n", val); + + return NULL; +} + +void dumpNum(DataChunk *chunk) +{ + printf("%s\n", chunk->data); +} + +void dumpAn(DataChunk *chunk) +{ + printf("%s\n", chunk->data); +} + +void dump8(DataChunk *chunk) +{ + int i, j; + unsigned char c; + int count = 0; + unsigned char buf[16]; + + for(i=0; i<chunk->size; i++) { + buf[count] = chunk->data[i]; + c = chunk->data[i]; + if(c >= ' ' && c <= '~') { + putchar(c); + } else { + putchar('.'); + } + count++; + + if(count >= 16) { + putchar(' '); + for(j=0; j<16; j++) { + printf(" %02x", buf[j]); + } + count = 0; + putchar('\n'); + } + } + if(count > 0) { + for(i=0; i<16 - count; i++) { + putchar(' '); + } + putchar(' '); + for(j=0; j<count; j++) { + printf(" %02x", buf[j]); + } + count = 0; + putchar('\n'); + } +} + +void dumpKanji(DataChunk *chunk) +{ + iconv_t conv; + char *inbuf, *outbuf, *outp; + size_t inbytes, outbytes, ret; + + conv = iconv_open("UTF-8", "SHIFT_JIS"); + inbytes = chunk->size; + inbuf = (char *)chunk->data; + outbytes = inbytes * 4 + 1; + outbuf = (char *)malloc(inbytes * 4 + 1); + outp = outbuf; + ret = iconv(conv, &inbuf, &inbytes, &outp, &outbytes); + if(ret == (size_t) -1) { perror(NULL); } + *outp = '\0'; + + printf("%s\n", outbuf); + + iconv_close(conv); + free(outbuf); +} + +static void dumpChunk(DataChunk *chunk) +{ + switch(chunk->mode) { + case QR_MODE_NUM: + printf("Numeric: %d bytes\n", chunk->size); + dumpNum(chunk); + break; + case QR_MODE_AN: + printf("AlphaNumeric: %d bytes\n", chunk->size); + dumpAn(chunk); + break; + case QR_MODE_8: + printf("8-bit data: %d bytes\n", chunk->size); + dump8(chunk); + break; + case QR_MODE_KANJI: + printf("Kanji: %d bytes\n", chunk->size); + dumpKanji(chunk); + break; + default: + printf("Invalid or reserved: %d bytes\n", chunk->size); + dump8(chunk); + break; + } +} + +void dumpChunks(QRdata *qrdata) +{ + DataChunk *chunk; + + chunk = qrdata->chunks; + while(chunk != NULL) { + dumpChunk(chunk); + chunk = chunk->next; + } +} + +void QRdata_concatChunks(QRdata *qrdata) +{ + int idx; + unsigned char *data; + DataChunk *chunk; + int size = 0; + + chunk = qrdata->chunks; + while(chunk != NULL) { + size += chunk->size; + chunk = chunk->next; + } + if(size <= 0) { + return; + } + + data = malloc(size + 1); + chunk = qrdata->chunks; + idx = 0; + while(chunk != NULL) { + memcpy(&data[idx], chunk->data, chunk->size); + idx += chunk->size; + chunk = chunk->next; + } + data[size] = '\0'; + qrdata->size = size; + qrdata->data = data; +} + +int appendChunk(QRdata *qrdata, int *bits_length, unsigned char **bits) +{ + DataChunk *chunk; + + if(qrdata->mqr) { + chunk = decodeChunkMQR(bits_length, bits, qrdata->version); + } else { + chunk = decodeChunk(bits_length, bits, qrdata->version); + } + if(chunk == NULL) { + return 1; + } + + if(qrdata->last == NULL) { + qrdata->chunks = chunk; + } else { + qrdata->last->next = chunk; + } + qrdata->last = chunk; + + return 0; +} + +QRdata *QRdata_new(void) +{ + QRdata *qrdata; + + qrdata = (QRdata *)calloc(sizeof(QRdata), 1); + if(qrdata == NULL) return NULL; + + return qrdata; +} + +QRdata *QRdata_newMQR(void) +{ + QRdata *qrdata; + + qrdata = (QRdata *)calloc(sizeof(QRdata), 1); + if(qrdata == NULL) return NULL; + qrdata->mqr = 1; + + return qrdata; +} + +void QRdata_free(QRdata *qrdata) +{ + DataChunk *chunk, *next; + + chunk = qrdata->chunks; + while(chunk != NULL) { + next = chunk->next; + DataChunk_free(chunk); + chunk = next; + } + + if(qrdata->data != NULL) { + free(qrdata->data); + } + free(qrdata); +} + +static int QRdata_decodeBits(QRdata *qrdata, int length, unsigned char *bits) +{ + int ret = 0; + + while(ret == 0) { + ret = appendChunk(qrdata, &length, &bits); + } + + return length; +} + +int QRdata_decodeBitStream(QRdata *qrdata, BitStream *bstream) +{ + return QRdata_decodeBits(qrdata, bstream->length, bstream->data); +} + +void QRdata_dump(QRdata *data) +{ + dumpChunks(data); +} + +unsigned int QRcode_decodeVersion(QRcode *code) +{ + unsigned int v1, v2; + int x, y, width; + unsigned char *p; + + width = code->width; + if(width < 45) { + return (width - 21)/ 4 + 1; + } + + v1 = 0; + p = code->data + width * (width - 9) + 5; + for(x=0; x<6; x++) { + for(y=0; y<3; y++) { + v1 = v1 << 1; + v1 |= *(p - y * width - x) & 1; + } + } + + v2 = 0; + p = code->data + width * 5 + width - 9; + for(y=0; y<6; y++) { + for(x=0; x<3; x++) { + v2 = v2 << 1; + v2 |= *(p - y * width - x) & 1; + } + } + + if(v1 != v2) { + printf("Two verion patterns are different.\n"); + return -1; + } + + return v1 >> 12; +} + +int QRcode_decodeFormat(QRcode *code, QRecLevel *level, int *mask) +{ + unsigned int v1, v2; + int i, width; + unsigned char *p; + + width = code->width; + + v1 = 0; + p = code->data + width * 8; + for(i=0; i<8; i++) { + v1 = v1 << 1; + if(i < 6) { + v1 |= *(p + i) & 1; + } else { + v1 |= *(p + i + 1) & 1; + } + } + p = code->data + width * 7 + 8; + for(i=0; i<7; i++) { + v1 = v1 << 1; + if(i < 1) { + v1 |= *(p - width * i) & 1; + } else { + v1 |= *(p - width * (i + 1)) & 1; + } + } + + v2 = 0; + p = code->data + width * (width - 1) + 8; + for(i=0; i<7; i++) { + v2 = v2 << 1; + v2 |= *(p - width * i) & 1; + } + p = code->data + width * 8 + width - 8; + for(i=0; i<8; i++) { + v2 = v2 << 1; + v2 |= *(p + i) & 1; + } + + if(v1 != v2) { + printf("Two format infos are different.\n"); + return -1; + } + v1 = (v1 ^ 0x5412) >> 10; + *mask = v1 & 7; + switch((v1 >> 3) & 3) { + case 1: + *level = QR_ECLEVEL_L; + break; + case 0: + *level = QR_ECLEVEL_M; + break; + case 3: + *level = QR_ECLEVEL_Q; + break; + case 2: + *level = QR_ECLEVEL_H; + break; + default: + break; + } + + return 0; +} + +static unsigned char *unmask(QRcode *code, QRecLevel level, int mask) +{ + unsigned char *unmasked; + + unmasked = Mask_makeMask(code->width, code->data, mask, level); + + return unmasked; +} + +unsigned char *QRcode_unmask(QRcode *code) +{ + int ret, version, mask; + QRecLevel level; + + version = QRcode_decodeVersion(code); + if(version < 1) return NULL; + ret = QRcode_decodeFormat(code, &level, &mask); + if(ret < 0) return NULL; + + return unmask(code, level, mask); +} + +typedef struct { + int width; + unsigned char *frame; + int x, y; + int dir; + int bit; + int mqr; +} FrameFiller; + +static FrameFiller *FrameFiller_new(int width, unsigned char *frame, int mqr) +{ + FrameFiller *filler; + + filler = (FrameFiller *)malloc(sizeof(FrameFiller)); + if(filler == NULL) return NULL; + filler->width = width; + filler->frame = frame; + filler->x = width - 1; + filler->y = width - 1; + filler->dir = -1; + filler->bit = -1; + filler->mqr = mqr; + + return filler; +} + +static unsigned char *FrameFiller_next(FrameFiller *filler) +{ + unsigned char *p; + int x, y, w; + + if(filler->bit == -1) { + filler->bit = 0; + return filler->frame + filler->y * filler->width + filler->x; + } + + x = filler->x; + y = filler->y; + p = filler->frame; + w = filler->width; + + if(filler->bit == 0) { + x--; + filler->bit++; + } else { + x++; + y += filler->dir; + filler->bit--; + } + + if(filler->dir < 0) { + if(y < 0) { + y = 0; + x -= 2; + filler->dir = 1; + if(!filler->mqr && x == 6) { + x--; + y = 9; + } + } + } else { + if(y == w) { + y = w - 1; + x -= 2; + filler->dir = -1; + if(!filler->mqr && x == 6) { + x--; + y -= 8; + } + } + } + if(x < 0 || y < 0) return NULL; + + filler->x = x; + filler->y = y; + + if(p[y * w + x] & 0x80) { + // This tail recursion could be optimized. + return FrameFiller_next(filler); + } + return &p[y * w + x]; +} + +static unsigned char *extractBits(int width, unsigned char *frame, int spec[5]) +{ + unsigned char *bits, *p, *q; + FrameFiller *filler; + int i, j; + int col, row, d1, b1, blocks, idx, words; + + blocks = QRspec_rsBlockNum(spec); + words = QRspec_rsDataLength(spec); + d1 = QRspec_rsDataCodes1(spec); + b1 = QRspec_rsBlockNum1(spec); + bits = (unsigned char *)malloc(words * 8); + /* + * 00 01 02 03 04 05 06 07 08 09 + * 10 11 12 13 14 15 16 17 18 19 + * 20 21 22 23 24 25 26 27 28 29 30 + * 31 32 33 34 35 36 37 38 39 40 41 + * 42 43 44 45 46 47 48 49 50 51 52 + */ + + row = col = 0; + filler = FrameFiller_new(width, frame, 0); + for(i=0; i<words; i++) { + col = i / blocks; + row = i % blocks + ((col >= d1)?b1:0); + idx = d1 * row + col + ((row > b1)?(row-b1):0); + q = bits + idx * 8; + for(j=0; j<8; j++) { + p = FrameFiller_next(filler); + q[j] = *p & 1; + } + } + free(filler); + + return bits; +} + +unsigned char *QRcode_extractBits(QRcode *code, int *length) +{ + unsigned char *unmasked, *bits; + int spec[5]; + int ret, version, mask; + QRecLevel level; + + version = QRcode_decodeVersion(code); + if(version < 1) return NULL; + ret = QRcode_decodeFormat(code, &level, &mask); + if(ret < 0) return NULL; + + QRspec_getEccSpec(version, level, spec); + *length = QRspec_rsDataLength(spec) * 8; + + unmasked = unmask(code, level, mask); + if(unmasked == NULL) return NULL; + + bits = extractBits(code->width, unmasked, spec); + free(unmasked); + + return bits; +} + +static void printBits(int length, unsigned char *bits) +{ + int i; + + for(i=0; i<length; i++) { + putchar((bits[i]&1)?'1':'0'); + } + putchar('\n'); +} + +static int checkRemainderWords(int length, unsigned char *bits, int remainder) +{ + int rbits, words; + unsigned char *p, v; + int i; + + words = remainder / 8; + rbits = remainder - words * 8; + bits += (length - remainder); + for(i=0; i<rbits; i++) { + if((bits[i]&1) != 0) { + printf("Terminating code includes 1-bit.\n"); + printBits(remainder, bits); + return -1; + } + } + p = bits + rbits; + for(i=0; i<words; i++) { + v = (unsigned char)bitToInt(p, 8); + if(v != ((i&1)?0x11:0xec)) { + printf("Remainder codewords wrong.\n"); + printBits(remainder, bits); + return -1; + } + p += 8; + } + + return 0; +} + +QRdata *QRcode_decodeBits(QRcode *code) +{ + unsigned char *unmasked, *bits; + int spec[5]; + int ret, version, mask; + int length; + QRecLevel level; + QRdata *qrdata; + + version = QRcode_decodeVersion(code); + if(version < 1) return NULL; + ret = QRcode_decodeFormat(code, &level, &mask); + if(ret < 0) return NULL; + + QRspec_getEccSpec(version, level, spec); + length = QRspec_rsDataLength(spec) * 8; + + unmasked = unmask(code, level, mask); + if(unmasked == NULL) return NULL; + + bits = extractBits(code->width, unmasked, spec); + free(unmasked); + + qrdata = QRdata_new(); + qrdata->version = version; + qrdata->level = level; + ret = QRdata_decodeBits(qrdata, length, bits); + if(ret > 0) { + checkRemainderWords(length, bits, ret); + } + + free(bits); + + return qrdata; +} + +QRdata *QRcode_decode(QRcode *code) +{ + QRdata *qrdata; + + qrdata = QRcode_decodeBits(code); + QRdata_concatChunks(qrdata); + + return qrdata; +} + +/* + * Micro QR Code decoder + */ + +struct FormatInfo MQRformat[] = { + {1, QR_ECLEVEL_L}, + {2, QR_ECLEVEL_L}, + {2, QR_ECLEVEL_M}, + {3, QR_ECLEVEL_L}, + {3, QR_ECLEVEL_M}, + {4, QR_ECLEVEL_L}, + {4, QR_ECLEVEL_M}, + {4, QR_ECLEVEL_Q} +}; + +int QRcode_decodeFormatMQR(QRcode *code, int *version, QRecLevel *level, int *mask) +{ + unsigned int v, t; + int i, width; + unsigned char *p; + + width = code->width; + + v = 0; + p = code->data + width * 8 + 1; + for(i=0; i<8; i++) { + v = v << 1; + v |= p[i] & 1; + } + p = code->data + width * 7 + 8; + for(i=0; i<7; i++) { + v = v << 1; + v |= *(p - width * i) & 1; + } + v ^= 0x4445; + *mask = (v >> 10) & 3; + t = (v >> 12) & 7; + *version = MQRformat[t].version; + *level = MQRformat[t].level; + if(*version * 2 + 9 != width) { + printf("Decoded version number does not match to the size.\n"); + return -1; + } + return 0; +} + +static unsigned char *unmaskMQR(QRcode *code, QRecLevel level, int mask) +{ + unsigned char *unmasked; + + unmasked = MMask_makeMask(code->version, code->data, mask, level); + + return unmasked; +} + +unsigned char *QRcode_unmaskMQR(QRcode *code) +{ + int ret, version, mask; + QRecLevel level; + + ret = QRcode_decodeFormatMQR(code, &version, &level, &mask); + if(ret < 0) return NULL; + + return unmaskMQR(code, level, mask); +} + +static unsigned char *extractBitsMQR(int width, unsigned char *frame, int version, QRecLevel level) +{ + unsigned char *bits; + FrameFiller *filler; + int i; + int size; + + size = MQRspec_getDataLengthBit(version, level); + bits = (unsigned char *)malloc(size); + filler = FrameFiller_new(width, frame, 1); + for(i=0; i<size; i++) { + bits[i] = *(FrameFiller_next(filler)) & 1; + } + free(filler); + + return bits; +} + +unsigned char *MQRcode_extractBits(QRcode *code, int *length) +{ + unsigned char *unmasked, *bits; + int ret, version, mask; + QRecLevel level; + + ret = QRcode_decodeFormatMQR(code, &version, &level, &mask); + if(ret < 0) return NULL; + + unmasked = unmaskMQR(code, level, mask); + if(unmasked == NULL) return NULL; + + *length = MQRspec_getDataLengthBit(version, level); + bits = extractBitsMQR(code->width, unmasked, version, level); + free(unmasked); + + return bits; +} + +static int checkRemainderWordsMQR(int length, unsigned char *bits, int remainder, int version) +{ + int rbits, words, paddings; + unsigned char *p, v; + int i, decoded; + + decoded = length - remainder; + bits += decoded; + words = (decoded + 7) / 8; + rbits = words * 8 - decoded; + for(i=0; i<rbits; i++) { + if((bits[i]&1) != 0) { + printf("Terminating code includes 1-bit.\n"); + printBits(remainder, bits); + return -1; + } + } + + paddings = (length - words * 8) / 8; + p = bits + rbits; + for(i=0; i<paddings; i++) { + v = (unsigned char)bitToInt(p, 8); + if(v != ((i&1)?0x11:0xec)) { + printf("Remainder codewords wrong.\n"); + printBits(remainder, bits); + return -1; + } + p += 8; + } + rbits = length - (paddings + words)* 8; + if(rbits > 0) { + if((version == 1 || version == 3) && rbits == 4) { + v = (unsigned char)bitToInt(p, 4); + if(v != 0) { + printf("Last padding bits include 1-bit.\n"); + return -1; + } + } else { + printf("The length of the last padding bits is %d, not %d.\n", rbits, (version == 1 || version == 3)?4:0); + return -1; + } + } + + return 0; +} + +QRdata *QRcode_decodeBitsMQR(QRcode *code) +{ + unsigned char *unmasked, *bits; + int ret, version, mask; + int length; + QRecLevel level; + QRdata *qrdata; + + ret = QRcode_decodeFormatMQR(code, &version, &level, &mask); + if(ret < 0) return NULL; + + unmasked = unmaskMQR(code, level, mask); + if(unmasked == NULL) return NULL; + + length = MQRspec_getDataLengthBit(version, level); + bits = extractBitsMQR(code->width, unmasked, version, level); + free(unmasked); + + qrdata = QRdata_newMQR(); + qrdata->version = version; + qrdata->level = level; + ret = QRdata_decodeBits(qrdata, length, bits); + if(ret > 0) { + checkRemainderWordsMQR(length, bits, ret, version); + } + + free(bits); + + return qrdata; +} + +QRdata *QRcode_decodeMQR(QRcode *code) +{ + QRdata *qrdata; + qrdata = QRcode_decodeBitsMQR(code); + QRdata_concatChunks(qrdata); + + return qrdata; +} diff --git a/contrib/qrencode-win32/tests/decoder.h b/contrib/qrencode-win32/tests/decoder.h new file mode 100644 index 0000000..81388e3 --- /dev/null +++ b/contrib/qrencode-win32/tests/decoder.h @@ -0,0 +1,49 @@ +#ifndef __DECODER_H__ +#define __DECODER_H__ + +#include "../qrencode.h" + +typedef struct _DataChunk { + QRencodeMode mode; + int size; + int bits; + unsigned char *data; + struct _DataChunk *next; +} DataChunk; + +typedef struct { + int size; + unsigned char *data; + int mqr; + int version; + QRecLevel level; + DataChunk *chunks, *last; +} QRdata; + +struct FormatInfo { + int version; + QRecLevel level; +}; + +extern struct FormatInfo MQRformat[]; + +QRdata *QRdata_new(void); +QRdata *QRdata_newMQR(void); +int QRdata_decodeBitStream(QRdata *qrdata, BitStream *bstream); +void QRdata_dump(QRdata *data); +void QRdata_free(QRdata *data); + +unsigned int QRcode_decodeVersion(QRcode *code); +int QRcode_decodeFormat(QRcode *code, QRecLevel *level, int *mask); +unsigned char *QRcode_unmask(QRcode *code); +unsigned char *QRcode_extractBits(QRcode *code, int *length); +QRdata *QRcode_decodeBits(QRcode *code); +QRdata *QRcode_decode(QRcode *code); + +int QRcode_decodeFormatMQR(QRcode *code, int *vesion, QRecLevel *level, int *mask); +unsigned char *QRcode_unmaskMQR(QRcode *code); +unsigned char *QRcode_extractBitsMQR(QRcode *code, int *length); +QRdata *QRcode_decodeBitsMQR(QRcode *code); +QRdata *QRcode_decodeMQR(QRcode *code); + +#endif /* __DECODER_H__ */ diff --git a/contrib/qrencode-win32/tests/frame b/contrib/qrencode-win32/tests/frame new file mode 100644 index 0000000000000000000000000000000000000000..fda4eaaa8a02a9f4355aa40b748a542dfc3fd18a GIT binary patch literal 477320 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 T&vb($NYPw@uarPjIykrhzpV)0 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/tests/prof_qrencode.c b/contrib/qrencode-win32/tests/prof_qrencode.c new file mode 100644 index 0000000..a02d9a7 --- /dev/null +++ b/contrib/qrencode-win32/tests/prof_qrencode.c @@ -0,0 +1,74 @@ +#include <stdio.h> +#include <stdlib.h> +#include <sys/time.h> +#include <time.h> +#include <errno.h> +#include "../qrencode.h" + +struct timeval tv; +void timerStart(const char *str) +{ + printf("%s: START\n", str); + gettimeofday(&tv, NULL); +} + +void timerStop(void) +{ + struct timeval tc; + + gettimeofday(&tc, NULL); + printf("STOP: %ld msec\n", (tc.tv_sec - tv.tv_sec) * 1000 + + (tc.tv_usec - tv.tv_usec) / 1000); +} + +void prof_ver1to10(void) +{ + QRcode *code; + int i; + int version; + static const char *data = "This is test."; + + timerStart("Version 1 - 10 (500 symbols for each)"); + for(i=0; i<500; i++) { + for(version = 0; version < 11; version++) { + code = QRcode_encodeString(data, version, QR_ECLEVEL_L, QR_MODE_8, 0); + if(code == NULL) { + perror("Failed to encode:"); + } else { + QRcode_free(code); + } + } + } + timerStop(); +} + +void prof_ver31to40(void) +{ + QRcode *code; + int i; + int version; + static const char *data = "This is test."; + + timerStart("Version 31 - 40 (50 symbols for each)"); + for(i=0; i<50; i++) { + for(version = 31; version < 41; version++) { + code = QRcode_encodeString(data, version, QR_ECLEVEL_L, QR_MODE_8, 0); + if(code == NULL) { + perror("Failed to encode:"); + } else { + QRcode_free(code); + } + } + } + timerStop(); +} + +int main(void) +{ + prof_ver1to10(); + prof_ver31to40(); + + QRcode_clearCache(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/pthread_qrencode.c b/contrib/qrencode-win32/tests/pthread_qrencode.c new file mode 100644 index 0000000..dbaa1ce --- /dev/null +++ b/contrib/qrencode-win32/tests/pthread_qrencode.c @@ -0,0 +1,107 @@ +#include <stdio.h> +#include <stdlib.h> +#include <sys/time.h> +#include <pthread.h> +#include <time.h> +#include <errno.h> +#include "../qrencode.h" + +#define THREADS (10) + +static pthread_t threads[THREADS]; + +struct timeval tv; +void timerStart(const char *str) +{ + printf("%s: START\n", str); + gettimeofday(&tv, NULL); +} + +void timerStop(void) +{ + struct timeval tc; + + gettimeofday(&tc, NULL); + printf("STOP: %ld msec\n", (tc.tv_sec - tv.tv_sec) * 1000 + + (tc.tv_usec - tv.tv_usec) / 1000); +} + +void *encode_ver1to10(void *arg) +{ + QRcode *code; + int i; + int version; + static const char *data = "This is test."; + + for(i=0; i<500; i++) { + for(version = 0; version < 11; version++) { + code = QRcode_encodeString(data, version, QR_ECLEVEL_L, QR_MODE_8, 0); + if(code == NULL) { + perror("Failed to encode:"); + } else { + QRcode_free(code); + } + } + } + + return NULL; +} + +void prof_ver1to10(void) +{ + int i; + + timerStart("Version 1 - 10 (500 symbols for each)"); + for(i=0; i<THREADS; i++) { + pthread_create(&threads[i], NULL, encode_ver1to10, NULL); + } + for(i=0; i<THREADS; i++) { + pthread_join(threads[i], NULL); + } + timerStop(); +} + +void *encode_ver31to40(void *arg) +{ + QRcode *code; + int i; + int version; + static const char *data = "This is test."; + + for(i=0; i<50; i++) { + for(version = 31; version < 41; version++) { + code = QRcode_encodeString(data, version, QR_ECLEVEL_L, QR_MODE_8, 0); + if(code == NULL) { + perror("Failed to encode:"); + } else { + QRcode_free(code); + } + } + } + + return NULL; +} + +void prof_ver31to40(void) +{ + int i; + + timerStart("Version 31 - 40 (50 symbols for each)"); + for(i=0; i<THREADS; i++) { + pthread_create(&threads[i], NULL, encode_ver31to40, NULL); + } + for(i=0; i<THREADS; i++) { + pthread_join(threads[i], NULL); + } + timerStop(); +} + +int main(void) +{ + prof_ver1to10(); + prof_ver31to40(); + + QRcode_clearCache(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_all.sh b/contrib/qrencode-win32/tests/test_all.sh new file mode 100644 index 0000000..06de1d4 --- /dev/null +++ b/contrib/qrencode-win32/tests/test_all.sh @@ -0,0 +1,12 @@ +#!/bin/sh -e +./test_bitstream +./test_estimatebit +./test_qrencode +./test_qrinput +./test_qrspec +./test_rs +./test_split +./test_mask +./test_mqrspec +./test_mmask +./test_monkey diff --git a/contrib/qrencode-win32/tests/test_bitstream.c b/contrib/qrencode-win32/tests/test_bitstream.c new file mode 100644 index 0000000..03fedda --- /dev/null +++ b/contrib/qrencode-win32/tests/test_bitstream.c @@ -0,0 +1,221 @@ +#include <stdio.h> +#include <string.h> +#include "common.h" +#include "../bitstream.h" + +void test_null(void) +{ + BitStream *bstream; + + testStart("Empty stream"); + bstream = BitStream_new(); + assert_zero(BitStream_size(bstream), "Size of empty BitStream is not 0.\n"); + assert_null(BitStream_toByte(bstream), "BitStream_toByte returned non-NULL.\n"); + assert_nothing(BitStream_free(NULL), "Checking BitStream_free(NULL).\n"); + testFinish(); + + BitStream_free(bstream); +} + +void test_num(void) +{ + BitStream *bstream; + unsigned int data = 0x13579bdf; + char correct[] = "0010011010101111001101111011111"; + + testStart("New from num"); + bstream = BitStream_new(); + BitStream_appendNum(bstream, 31, data); + testEnd(cmpBin(correct, bstream)); + + BitStream_free(bstream); +} + +void test_bytes(void) +{ + BitStream *bstream; + unsigned char data[1] = {0x3a}; + char correct[] = "00111010"; + + testStart("New from bytes"); + bstream = BitStream_new(); + BitStream_appendBytes(bstream, 1, data); + testEnd(cmpBin(correct, bstream)); + BitStream_free(bstream); +} + +void test_appendNum(void) +{ + BitStream *bstream; + char correct[] = "10001010 11111111 11111111 00010010001101000101011001111000"; + + testStart("Append Num"); + bstream = BitStream_new(); + + BitStream_appendNum(bstream, 8, 0x0000008a); + assert_zero(ncmpBin(correct, bstream, 8), "Internal data is incorrect.\n"); + + BitStream_appendNum(bstream, 16, 0x0000ffff); + assert_zero(ncmpBin(correct, bstream, 24), "Internal data is incorrect.\n"); + + BitStream_appendNum(bstream, 32, 0x12345678); + + assert_zero(cmpBin(correct, bstream), "Internal data is incorrect.\n"); + testFinish(); + + BitStream_free(bstream); +} + +void test_appendBytes(void) +{ + BitStream *bstream; + unsigned char data[8]; + char correct[] = "10001010111111111111111100010010001101000101011001111000"; + + testStart("Append Bytes"); + bstream = BitStream_new(); + + data[0] = 0x8a; + BitStream_appendBytes(bstream, 1, data); + assert_zero(ncmpBin(correct, bstream, 8), "Internal data is incorrect."); + + data[0] = 0xff; + data[1] = 0xff; + BitStream_appendBytes(bstream, 2, data); + assert_zero(ncmpBin(correct, bstream, 24), "Internal data is incorrect.\n"); + + data[0] = 0x12; + data[1] = 0x34; + data[2] = 0x56; + data[3] = 0x78; + BitStream_appendBytes(bstream, 4, data); + + assert_zero(cmpBin(correct, bstream), "Internal data is incorrect.\n"); + testFinish(); + + BitStream_free(bstream); +} + +void test_toByte(void) +{ + BitStream *bstream; + unsigned char correct[] = { + 0x8a, 0xff, 0xff, 0x12, 0x34, 0x56, 0x78 + }; + unsigned char *result; + + testStart("Convert to a byte array"); + bstream = BitStream_new(); + + BitStream_appendBytes(bstream, 1, &correct[0]); + BitStream_appendBytes(bstream, 2, &correct[1]); + BitStream_appendBytes(bstream, 4, &correct[3]); + + result = BitStream_toByte(bstream); + testEnd(memcmp(correct, result, 7)); + + BitStream_free(bstream); + free(result); +} + +void test_toByte_4bitpadding(void) +{ + BitStream *bstream; + unsigned char *result; + + testStart("Convert to a byte array"); + + bstream = BitStream_new(); + BitStream_appendNum(bstream, 4, 0xb); + result = BitStream_toByte(bstream); + assert_equal(result[0], 0xb, "incorrect paddings\n"); + BitStream_free(bstream); + free(result); + + bstream = BitStream_new(); + BitStream_appendNum(bstream, 12, 0x335); + result = BitStream_toByte(bstream); + assert_equal(result[0], 0x33, "incorrect paddings\n"); + assert_equal(result[1], 0x05, "incorrect paddings\n"); + BitStream_free(bstream); + free(result); + + testFinish(); + +} + +void test_size(void) +{ + BitStream *bstream; + + testStart("size check"); + bstream = BitStream_new(); + assert_equal(BitStream_size(bstream), 0, "Initialized BitStream is not 0 length"); + BitStream_appendNum(bstream, 1, 0); + assert_equal(BitStream_size(bstream), 1, "Size incorrect. (first append)"); + BitStream_appendNum(bstream, 2, 0); + assert_equal(BitStream_size(bstream), 3, "Size incorrect. (second append)"); + testFinish(); + + BitStream_free(bstream); +} + +void test_append(void) +{ + BitStream *bs1, *bs2; + char c1[] = "00"; + char c2[] = "0011"; + char c3[] = "01111111111111111"; + char c4[] = "001101111111111111111"; + char c5[] = "0011011111111111111111111111111111"; + int ret; + + testStart("Append two BitStreams"); + + bs1 = BitStream_new(); + bs2 = BitStream_new(); + ret = BitStream_appendNum(bs1, 1, 0); + ret = BitStream_appendNum(bs2, 1, 0); + + ret = BitStream_append(bs1, bs2); + assert_zero(ret, "Failed to append."); + assert_zero(cmpBin(c1, bs1), "Internal data is incorrect."); + + ret = BitStream_appendNum(bs1, 2, 3); + assert_zero(ret, "Failed to append."); + assert_zero(cmpBin(c2, bs1), "Internal data is incorrect."); + + ret = BitStream_appendNum(bs2, 16, 65535); + assert_zero(ret, "Failed to append."); + assert_zero(cmpBin(c3, bs2), "Internal data is incorrect."); + + ret = BitStream_append(bs1, bs2); + assert_zero(ret, "Failed to append."); + assert_zero(cmpBin(c4, bs1), "Internal data is incorrect."); + + ret = BitStream_appendNum(bs1, 13, 16383); + assert_zero(ret, "Failed to append."); + assert_zero(cmpBin(c5, bs1), "Internal data is incorrect."); + + testFinish(); + + BitStream_free(bs1); + BitStream_free(bs2); +} + +int main(void) +{ + test_null(); + test_num(); + test_bytes(); + test_appendNum(); + test_appendBytes(); + test_toByte(); + test_toByte_4bitpadding(); + test_size(); + test_append(); + + report(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_estimatebit.c b/contrib/qrencode-win32/tests/test_estimatebit.c new file mode 100644 index 0000000..bcae3f6 --- /dev/null +++ b/contrib/qrencode-win32/tests/test_estimatebit.c @@ -0,0 +1,158 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "common.h" +#include "../qrinput.h" + +QRinput *gstream; + +void test_numbit(void) +{ + QRinput *stream; + char num[9]="01234567"; + int bits; + + testStart("Estimation of Numeric stream (8 digits)"); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); + bits = QRinput_estimateBitStreamSize(stream, 0); + testEndExp(bits == 41); + + QRinput_append(gstream, QR_MODE_NUM, 8, (unsigned char *)num); + QRinput_free(stream); +} + +void test_numbit2(void) +{ + QRinput *stream; + char num[17]="0123456789012345"; + int bits; + + testStart("Estimation of Numeric stream (16 digits)"); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_NUM, 16, (unsigned char *)num); + bits = QRinput_estimateBitStreamSize(stream, 0); + testEndExp(bits == 68); + + QRinput_append(gstream, QR_MODE_NUM, 16, (unsigned char *)num); + QRinput_free(stream); +} + +void test_numbit3(void) +{ + QRinput *stream; + char *num; + int bits; + + testStart("Estimation of Numeric stream (400 digits)"); + stream = QRinput_new(); + num = (char *)malloc(401); + memset(num, '1', 400); + num[400] = '\0'; + QRinput_append(stream, QR_MODE_NUM, 400, (unsigned char *)num); + bits = QRinput_estimateBitStreamSize(stream, 0); + /* 4 + 10 + 133*10 + 4 = 1348 */ + testEndExp(bits == 1348); + + QRinput_append(gstream, QR_MODE_NUM, 400, (unsigned char *)num); + QRinput_free(stream); + free(num); +} + +void test_an(void) +{ + QRinput *stream; + char str[6]="AC-42"; + int bits; + + testStart("Estimation of Alphabet-Numeric stream (5 chars)"); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_AN, 5, (unsigned char *)str); + bits = QRinput_estimateBitStreamSize(stream, 0); + testEndExp(bits == 41); + + QRinput_append(gstream, QR_MODE_AN, 5, (unsigned char *)str); + QRinput_free(stream); +} + +void test_8(void) +{ + QRinput *stream; + char str[9]="12345678"; + int bits; + + testStart("Estimation of 8 bit data stream (8 bytes)"); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_8, 8, (unsigned char *)str); + bits = QRinput_estimateBitStreamSize(stream, 0); + testEndExp(bits == 76); + + QRinput_append(gstream, QR_MODE_8, 8, (unsigned char *)str); + QRinput_free(stream); +} + +void test_structure(void) +{ + QRinput *stream; + int bits; + + testStart("Estimation of a structure-append header"); + stream = QRinput_new(); + QRinput_insertStructuredAppendHeader(stream, 10, 1, 0); + bits = QRinput_estimateBitStreamSize(stream, 1); + testEndExp(bits == 20); + + QRinput_insertStructuredAppendHeader(gstream, 10, 1, 0); + QRinput_free(stream); +} + +void test_kanji(void) +{ + int res; + + QRinput *stream; + unsigned char str[4]= {0x93, 0x5f,0xe4, 0xaa}; + int bits; + + testStart("Estimation of Kanji stream (2 chars)"); + stream = QRinput_new(); + res = QRinput_append(stream, QR_MODE_KANJI, 4, (unsigned char *)str); + if(res < 0) { + printf("Failed to add.\n"); + testEnd(1); + } else { + bits = QRinput_estimateBitStreamSize(stream, 0); + testEndExp(bits == 38); + QRinput_append(gstream, QR_MODE_KANJI, 4, (unsigned char *)str); + } + + QRinput_free(stream); +} + +void test_mix(void) +{ + int bits; + + testStart("Estimation of Mixed stream"); + bits = QRinput_estimateBitStreamSize(gstream, 0); + testEndExp(bits == (41 + 68 + 1348 + 41 + 76 + 38 + 20)); + QRinput_free(gstream); +} + +int main(void) +{ + gstream = QRinput_new(); + + test_numbit(); + test_numbit2(); + test_numbit3(); + test_an(); + test_8(); + test_kanji(); + test_structure(); + test_mix(); + + report(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_mask.c b/contrib/qrencode-win32/tests/test_mask.c new file mode 100644 index 0000000..56bedcb --- /dev/null +++ b/contrib/qrencode-win32/tests/test_mask.c @@ -0,0 +1,408 @@ +#include <stdio.h> +#include <string.h> +#include "common.h" +#include "../mask.h" +#include "../qrspec.h" +#include "decoder.h" + +char dot[2] = {'_', '#'}; +static char *maskPatterns[8] = { + /* (i + j) mod 2 = 0 */ + "#_#_#_" + "_#_#_#" + "#_#_#_" + "_#_#_#" + "#_#_#_" + "_#_#_#", + /* i mod 2 = 0 */ + "######" + "______" + "######" + "______" + "######" + "______", + /* j mod 3 = 0 */ + "#__#__" + "#__#__" + "#__#__" + "#__#__" + "#__#__" + "#__#__", + /* (i + j) mod 3 = 0 */ + "#__#__" + "__#__#" + "_#__#_" + "#__#__" + "__#__#" + "_#__#_", + /* ((i div 2) + (j div 3)) mod 2 = 0 */ + "###___" + "###___" + "___###" + "___###" + "###___" + "###___", + /* (ij) mod 2 + (ij) mod 3 = 0 */ + "######" + "#_____" + "#__#__" + "#_#_#_" + "#__#__" + "#_____", + /* ((ij) mod 2 + (ij) mod 3) mod 2 = 0 */ + "######" + "###___" + "##_##_" + "#_#_#_" + "#_##_#" + "#___##", + /* ((ij) mod 3 + (i+j) mod 2) mod 2 = 0 */ + "#_#_#_" + "___###" + "#___##" + "_#_#_#" + "###___" + "_###__" +}; + +void print_mask(int mask) +{ + const int w = 6; + unsigned char frame[w * w], *masked, *p; + int x, y; + + memset(frame, 0, w * w); + masked = Mask_makeMaskedFrame(w, frame, mask); + p = masked; + for(y=0; y<w; y++) { + for(x=0; x<w; x++) { + putchar(dot[*p&1]); + p++; + } + printf("\n"); + } + printf("\n"); + + free(masked); +} + +void print_masks(void) +{ + int i; + + for(i=0; i<8; i++) { + print_mask(i); + } +} + +int test_mask(int mask) +{ + const int w = 6; + unsigned char frame[w * w], *masked, *p; + char *q; + int x, y; + int err = 0; + + memset(frame, 0, w * w); + masked = Mask_makeMaskedFrame(w, frame, mask); + p = masked; + q = maskPatterns[mask]; + for(y=0; y<w; y++) { + for(x=0; x<w; x++) { + if(dot[*p&1] != *q) { + err++; + } + p++; + q++; + } + } + + free(masked); + return err; +} + +void test_masks(void) +{ + int i; + + testStart("Mask pattern checks"); + for(i=0; i<8; i++) { + assert_zero(test_mask(i), "Mask pattern %d incorrect.\n", i); + } + testFinish(); +} + +#define N1 (3) +#define N2 (3) +#define N3 (40) +#define N4 (10) + +void test_eval(void) +{ + unsigned char *frame; + int w = 6; + int demerit; + + frame = (unsigned char *)malloc(w * w); + + testStart("Test mask evaluation (all white)"); + memset(frame, 0, w * w); + demerit = Mask_evaluateSymbol(w, frame); + testEndExp(demerit == ((N1 + 1)*w*2 + N2 * (w - 1) * (w - 1))); + + testStart("Test mask evaluation (all black)"); + memset(frame, 1, w * w); + demerit = Mask_evaluateSymbol(w, frame); + testEndExp(demerit == ((N1 + 1)*w*2 + N2 * (w - 1) * (w - 1))); + + free(frame); +} + +/* .#.#.#.#.# + * #.#.#.#.#. + * ..##..##.. + * ##..##..## + * ...###...# + * ###...###. + * ....####.. + * ####....## + * .....##### + * #####..... + */ +void test_eval2(void) +{ + unsigned char *frame; + int w = 10; + int demerit; + int x; + + frame = (unsigned char *)malloc(w * w); + + testStart("Test mask evaluation (run length penalty check)"); + for(x=0; x<w; x++) { + frame[ x] = x & 1; + frame[w + x] = (x & 1) ^ 1; + frame[w*2 + x] = (x / 2) & 1; + frame[w*3 + x] = ((x / 2) & 1) ^ 1; + frame[w*4 + x] = (x / 3) & 1; + frame[w*5 + x] = ((x / 3) & 1) ^ 1; + frame[w*6 + x] = (x / 4) & 1; + frame[w*7 + x] = ((x / 4) & 1) ^ 1; + frame[w*8 + x] = (x / 5) & 1; + frame[w*9 + x] = ((x / 5) & 1) ^ 1; + } + demerit = Mask_evaluateSymbol(w, frame); + testEndExp(demerit == N1 * 4 + N2 * 4); + + free(frame); +} + +void test_calcN2(void) +{ + unsigned char frame[64]; + int width; + int demerit; + int x, y; + + testStart("Test mask evaluation (2x2 block check)"); + width = 4; + for(y = 0; y < width; y++) { + for(x = 0; x < width; x++) { + frame[y * width + x] = ((x & 2) ^ (y & 2)) >> 1; + } + } + demerit = Mask_calcN2(width, frame); + assert_equal(demerit, N2 * 4, "Calculation of N2 demerit is wrong: %d, expected %d", demerit, N2 * 4); + + width = 4; + for(y = 0; y < width; y++) { + for(x = 0; x < width; x++) { + frame[y * width + x] = (((x + 1) & 2) ^ (y & 2)) >> 1; + } + } + demerit = Mask_calcN2(width, frame); + assert_equal(demerit, N2 * 2, "Calculation of N2 demerit is wrong: %d, expected %d", demerit, N2 * 2); + + width = 6; + for(y = 0; y < width; y++) { + for(x = 0; x < width; x++) { + frame[y * width + x] = (x / 3) ^ (y / 3); + } + } + demerit = Mask_calcN2(width, frame); + assert_equal(demerit, N2 * 16, "Calculation of N2 demerit is wrong: %d, expected %d", demerit, N2 * 16); + + testFinish(); +} + +void test_eval3(void) +{ + unsigned char *frame; + int w = 15; + int demerit; + int x, y; + static unsigned char pattern[7][15] = { + {0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0}, // N3x1 + {1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1}, // N3x1 + {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1}, // N3x1 + {1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0}, // 0 + {1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1}, // N3x2 + {1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0}, // N3 + (N1+1) + {1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1} // (N1+1) + }; + + frame = (unsigned char *)malloc(w * w); + + testStart("Test mask evaluation (1:1:3:1:1 check)"); + + for(y=0; y<5; y++) { + for(x=0; x<w; x++) { + frame[w*y*2 + x] = pattern[y][x]; + frame[w*(y*2+1) + x] = pattern[y][x]^1; + } + } + for(x=0; x<w; x++) { + frame[w*10 + x] = x & 1; + } + for(y=5; y<7; y++) { + for(x=0; x<w; x++) { + frame[w*(y*2+1) + x] = pattern[y][x]; + frame[w*(y*2+2) + x] = pattern[y][x]^1; + } + } + /* + for(y=0; y<w; y++) { + for(x=0; x<w; x++) { + printf("%s", frame[w*y+x]?"##":".."); + } + printf("\n"); + } + */ + demerit = Mask_evaluateSymbol(w, frame); + testEndExp(demerit == N3 * 10 + (N1 + 1) * 4); + + free(frame); +} + +void test_format(void) +{ + unsigned char *frame, *masked; + int version, mask, width, dmask; + QRecLevel level, dlevel; + QRcode *code; + int ret; + + testStart("Checking format info."); + for(version=1; version<=QRSPEC_VERSION_MAX; version++) { + frame = QRspec_newFrame(version); + width = QRspec_getWidth(version); + for(level=0; level<4; level++) { + for(mask=0; mask<8; mask++) { + masked = Mask_makeMask(width, frame, mask, level); + code = QRcode_new(version, width, masked); + ret = QRcode_decodeFormat(code, &dlevel, &dmask); + assert_zero(ret, "Something wrong in format info.\n"); + assert_equal(dlevel, level, "Decoded level is wrong: %d, expected %d", dlevel, level); + assert_equal(dmask, mask, "Decoded mask is wrong: %d, expected %d", dlevel, level); + QRcode_free(code); + } + } + free(frame); + } + testFinish(); +} + +void test_calcRunLength(void) +{ + int width = 5; + unsigned char frame[width * width]; + int runLength[width + 1]; + int i, j; + int length; + static unsigned char pattern[6][5] = { + {0, 1, 0, 1, 0}, + {1, 0, 1, 0, 1}, + {0, 0, 0, 0, 0}, + {1, 1, 1, 1, 1}, + {0, 0, 1, 1, 1}, + {1, 1, 0, 0, 0} + }; + static int expected[6][7] = { + { 1, 1, 1, 1, 1, 0, 5}, + {-1, 1, 1, 1, 1, 1, 6}, + { 5, 0, 0, 0, 0, 0, 1}, + {-1, 5, 0, 0, 0, 0, 2}, + { 2, 3, 0, 0, 0, 0, 2}, + {-1, 2, 3, 0, 0, 0, 3} + }; + + testStart("Test runlength calc function"); + for(i=0; i<6; i++) { + length = Mask_calcRunLength(width, pattern[i], 0, runLength); + assert_equal(expected[i][6], length, "Length incorrect: %d, expected %d.\n", length, expected[i][6]); + assert_zero(memcmp(runLength, expected[i], sizeof(int) * expected[i][6]), "Run length does not match: pattern %d, horizontal access.\n", i); + for(j=0; j<width; j++) { + frame[j * width] = pattern[i][j]; + } + length = Mask_calcRunLength(width, frame, 1, runLength); + assert_equal(expected[i][6], length, "Length incorrect: %d, expected %d.\n", length, expected[i][6]); + assert_zero(memcmp(runLength, expected[i], sizeof(int) * expected[i][6]), "Run length does not match: pattern %d, vertical access.\n", i); + } + testFinish(); +} + +void test_calcN1N3(void) +{ + int runLength[26]; + int length; + int demerit; + int i; + static unsigned char pattern[][16] = { + {1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, N3}, + {0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, N3}, + {1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0}, + {1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, N3}, + {1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, N3}, + {1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, N3 * 2}, + }; + + static unsigned char pattern2[][19] = { + {1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, N3 + N1 + 1}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, N3 + N1 + 1}, + {1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, N1 + 1}, + {1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, N3 + N1 + 1}, + {1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, N3 + N1 + 1} + }; + + testStart("Test N3 penalty calculation"); + for(i=0; i<6; i++) { + length = Mask_calcRunLength(15, pattern[i], 0, runLength); + demerit = Mask_calcN1N3(length, runLength); + assert_equal(pattern[i][15], demerit, "N3 penalty is wrong: %d, expected %d\n", demerit, pattern[i][15]); + } + for(i=0; i<5; i++) { + length = Mask_calcRunLength(18, pattern2[i], 0, runLength); + demerit = Mask_calcN1N3(length, runLength); + assert_equal(pattern2[i][18], demerit, "N3 penalty is wrong: %d, expected %d\n", demerit, pattern2[i][18]); + } + testFinish(); +} + +int main(void) +{ + //print_masks(); + test_masks(); + test_eval(); + test_eval2(); + test_eval3(); + test_format(); + test_calcN2(); + test_calcRunLength(); + test_calcN1N3(); + + report(); + + QRspec_clearCache(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_mmask.c b/contrib/qrencode-win32/tests/test_mmask.c new file mode 100644 index 0000000..a3346dd --- /dev/null +++ b/contrib/qrencode-win32/tests/test_mmask.c @@ -0,0 +1,152 @@ +#include <stdio.h> +#include <string.h> +#include "common.h" +#include "../mmask.h" +#include "../mqrspec.h" + +char dot[2] = {'_', '#'}; +static char *maskPatterns[4] = { + /* i mod 2 = 0 */ + "######" + "______" + "######" + "______" + "######" + "______", + /* ((i div 2) + (j div 3)) mod 2 = 0 */ + "###___" + "###___" + "___###" + "___###" + "###___" + "###___", + /* ((ij) mod 2 + (ij) mod 3) mod 2 = 0 */ + "######" + "###___" + "##_##_" + "#_#_#_" + "#_##_#" + "#___##", + /* ((ij) mod 3 + (i+j) mod 2) mod 2 = 0 */ + "#_#_#_" + "___###" + "#___##" + "_#_#_#" + "###___" + "_###__" +}; + +void print_mask(int mask) +{ + const int w = 6; + unsigned char frame[w * w], *masked, *p; + int x, y; + + memset(frame, 0, w * w); + masked = MMask_makeMaskedFrame(w, frame, mask); + p = masked; + for(y=0; y<w; y++) { + for(x=0; x<w; x++) { + putchar(dot[*p&1]); + p++; + } + printf("\n"); + } + printf("\n"); + + free(masked); +} + +void print_masks(void) +{ + int i; + + for(i=0; i<4; i++) { + print_mask(i); + } +} + +int test_mask(int mask) +{ + const int w = 6; + unsigned char frame[w * w], *masked, *p; + char *q; + int x, y; + int err = 0; + + memset(frame, 0, w * w); + masked = MMask_makeMaskedFrame(w, frame, mask); + p = masked; + q = maskPatterns[mask]; + for(y=0; y<w; y++) { + for(x=0; x<w; x++) { + if(dot[*p&1] != *q) { + err++; + } + p++; + q++; + } + } + + free(masked); + return err; +} + +void test_masks(void) +{ + int i; + + testStart("Mask pattern checks"); + for(i=0; i<4; i++) { + assert_zero(test_mask(i), "Mask pattern %d incorrect.\n", i); + } + testFinish(); +} + +void test_maskEvaluation(void) +{ + static const int w = 11; + unsigned char pattern[w*w]; + int i, score; + + memset(pattern, 0, w*w); + + testStart("Test mask evaluation"); + score = MMask_evaluateSymbol(w, pattern); + assert_equal(score, 0, "Mask score caluculation is incorrect. (score=%d (%d expected)\n", score, 0); + + for(i=0; i<w; i++) { + pattern[(w-1) * w + i] = 1; + } + score = MMask_evaluateSymbol(w, pattern); + assert_equal(score, 16 + w - 1, "Mask score caluculation is incorrect. (score=%d) (%d expected)\n", score, 16 + w - 1); + + for(i=0; i<w; i++) { + pattern[(w-1) * w + i] = 0; + pattern[i * w + w - 1] = 1; + } + score = MMask_evaluateSymbol(w, pattern); + assert_equal(score, 16 + w - 1, "Mask score caluculation is incorrect. (score=%d) (%d expected)\n", score, 16 + w - 1); + + for(i=0; i<w; i++) { + pattern[(w-1) * w + i] = 1; + pattern[i * w + w - 1] = 1; + } + score = MMask_evaluateSymbol(w, pattern); + assert_equal(score, 16 * (w - 1) + w - 1, "Mask score caluculation is incorrect. (score=%d) (%d expected)\n", score, 16 * (w - 1) + w - 1); + + testFinish(); +} + +int main(void) +{ + //print_masks(); + test_masks(); + test_maskEvaluation(); + + report(); + + MQRspec_clearCache(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_monkey.c b/contrib/qrencode-win32/tests/test_monkey.c new file mode 100644 index 0000000..e872634 --- /dev/null +++ b/contrib/qrencode-win32/tests/test_monkey.c @@ -0,0 +1,567 @@ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include "common.h" +#include "../qrinput.h" +#include "../split.h" +#include "../qrspec.h" +#include "decoder.h" + +#define MAX_LENGTH 7091 +static unsigned char data[MAX_LENGTH]; +static unsigned char check[MAX_LENGTH]; + +static const char *AN = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:"; + +#define drand(__scale__) ((__scale__) * (double)rand() / ((double)RAND_MAX + 1.0)) + +int fill8bitString(void) +{ + int len, i; + + len = 1 + (int)drand((MAX_LENGTH - 2)); + for(i=0; i<len; i++) { + data[i] = (unsigned char)drand(255) + 1; + } + data[len] = '\0'; + + return len; +} + +int fill8bitData(void) +{ + int len, i; + + len = 1 + (int)drand((MAX_LENGTH - 2)); + for(i=0; i<len; i++) { + data[i] = (unsigned char)drand(256); + } + data[len] = '\0'; + + return len; +} + +int fillANData(void) +{ + int len, i; + + len = 1 + (int)drand((MAX_LENGTH - 2)); + for(i=0; i<len; i++) { + data[i] = AN[(int)drand(45)]; + } + data[len] = '\0'; + + return len; +} + +void test_encode_an(int num) +{ + int ret; + int len; + len = fillANData(); + QRcode *qrcode; + QRdata *qrdata; + FILE *fp; + char buf[256]; + + qrcode = QRcode_encodeString((char *)data, 0, num % 4, QR_MODE_8, num % 2); + if(qrcode == NULL) { + if(errno == ERANGE) return; + perror("test_encode_an aborted at QRcode_encodeString():"); + printf("Length: %d\n", len); + printf("Level: %d\n", num % 4); + return; + } + qrdata = QRcode_decode(qrcode); + if(qrdata == NULL) { + printf("#%d: Failed to decode this code.\n", num); + QRcode_free(qrcode); + return; + } + if(qrdata->size != len) { + printf("#%d: length mismatched (orig: %d, decoded: %d)\n", num, len, qrdata->size); + } + ret = memcmp(qrdata->data, data, len); + if(ret != 0) { + unsigned char *frame, *p; + int x,y, c; + QRinput *input; + QRcode *origcode; + BitStream *bstream; + int spec[5]; + + printf("#%d: data mismatched.\n", num); + printf("Version: %d\n", qrcode->version); + QRspec_getEccSpec(qrcode->version, num%4, spec); + printf("DataLength: %d\n", QRspec_rsDataLength(spec)); + printf("BlockNum1: %d\n", QRspec_rsBlockNum1(spec)); + printf("BlockNum: %d\n", QRspec_rsBlockNum(spec)); + printf("DataCodes1: %d\n", QRspec_rsDataCodes1(spec)); + + snprintf(buf, 256, "monkey-orig-%d.dat", num); + fp = fopen(buf, "w"); + fputs((char *)data, fp); + fclose(fp); + + snprintf(buf, 256, "monkey-result-%d.dat", num); + fp = fopen(buf, "w"); + fputs((char *)qrdata->data, fp); + fclose(fp); + + snprintf(buf, 256, "monkey-result-unmasked-%d.dat", num); + fp = fopen(buf, "w"); + frame = QRcode_unmask(qrcode); + p = frame; + for(y=0; y<qrcode->width; y++) { + for(x=0; x<qrcode->width; x++) { + fputc((*p&1)?'1':'0', fp); + p++; + } + fputc('\n', fp); + } + fclose(fp); + free(frame); + + snprintf(buf, 256, "monkey-orig-unmasked-%d.dat", num); + fp = fopen(buf, "w"); + input = QRinput_new2(0, num % 4); + Split_splitStringToQRinput((char *)data, input, QR_MODE_8, num % 2); + origcode = QRcode_encodeMask(input, -2); + p = origcode->data; + for(y=0; y<origcode->width; y++) { + for(x=0; x<origcode->width; x++) { + fputc((*p&1)?'1':'0', fp); + p++; + } + fputc('\n', fp); + } + fclose(fp); + QRcode_free(origcode); + + snprintf(buf, 256, "monkey-orig-bits-%d.dat", num); + fp = fopen(buf, "w"); + bstream = QRinput_mergeBitStream(input); + c = 0; + for(x=0; x<bstream->length; x++) { + fputc((bstream->data[x]&1)?'1':'0', fp); + if((x & 7) == 7) { + fputc(' ', fp); + c++; + } + if((x & 63) == 63) { + fprintf(fp, "%d\n", c); + } + } + fclose(fp); + QRinput_free(input); + BitStream_free(bstream); + + snprintf(buf, 256, "monkey-result-bits-%d.dat", num); + fp = fopen(buf, "w"); + p = QRcode_extractBits(qrcode, &y); + c = 0; + for(x=0; x<y; x++) { + fputc((p[x]&1)?'1':'0', fp); + if((x & 7) == 7) { + fputc(' ', fp); + c++; + } + if((x & 63) == 63) { + fprintf(fp, "%d\n", c); + } + } + fclose(fp); + free(p); + } + QRdata_free(qrdata); + QRcode_free(qrcode); +} + +void monkey_encode_an(int loop) +{ + int i; + + puts("Monkey test: QRcode_encodeString() - AlphaNumeric string."); + srand(0); + for(i=0; i<loop; i++) { + test_encode_an(i); + } +} + + +void test_split_an(int num) +{ + QRinput *input; + QRinput_List *list; + int len, i, ret; + + len = fillANData(); + + input = QRinput_new2(0, QR_ECLEVEL_L); + if(input == NULL) { + perror("test_split_an aborted at QRinput_new2():"); + return; + } + ret = Split_splitStringToQRinput((char *)data, input, QR_MODE_8, 1); + if(ret < 0) { + perror("test_split_an aborted at Split_splitStringToQRinput():"); + QRinput_free(input); + return; + } + list = input->head; + i = 0; + while(list != NULL) { + memcpy(check + i, list->data, list->size); + i += list->size; + list = list->next; + } + if(i != len) { + printf("#%d: length is not correct. (%d should be %d)\n", num, i, len); + } + + check[i] = '\0'; + ret = memcmp(data, check, len); + if(ret != 0) { + printf("#%d: data mismatched.\n", num); + list = input->head; + i = 0; + while(list != NULL) { + ret = memcmp(data + i, list->data, list->size); + printf("wrong chunk:\n"); + printf(" position: %d\n", i); + printf(" mode : %d\n", list->mode); + printf(" size : %d\n", list->size); + printf(" data : %.*s\n", list->size, list->data); + i += list->size; + list = list->next; + } + exit(1); + } + QRinput_free(input); +} + +void monkey_split_an(int loop) +{ + int i; + + puts("Monkey test: Split_splitStringToQRinput() - AlphaNumeric string."); + srand(0); + for(i=0; i<loop; i++) { + test_split_an(i); + } +} + +void test_encode_8(int num) +{ + QRcode *qrcode; + QRdata *qrdata; + int len, ret; + + len = fill8bitData(); + + qrcode = QRcode_encodeData(len, data, 0, num % 4); + if(qrcode == NULL) { + if(errno == ERANGE) return; + perror("test_encdoe_8 aborted at QRcode_encodeData():"); + return; + } + qrdata = QRcode_decode(qrcode); + if(qrdata == NULL) { + printf("#%d: Failed to decode this code.\n", num); + QRcode_free(qrcode); + return; + } + if(qrdata->size != len) { + printf("#%d: length mismatched (orig: %d, decoded: %d)\n", num, len, qrdata->size); + } + ret = memcmp(qrdata->data, data, len); + if(ret != 0) { + printf("#%d: data mismatched.\n", num); + } + QRdata_free(qrdata); + QRcode_free(qrcode); +} + +void monkey_encode_8(int loop) +{ + int i; + + puts("Monkey test: QRcode_encodeData() - 8bit char string."); + srand(0); + for(i=0; i<loop; i++) { + test_encode_8(i); + } +} + +void test_split_8(int num) +{ + QRinput *input; + QRinput_List *list; + int len, i, ret; + + len = fill8bitString(); + + input = QRinput_new2(0, QR_ECLEVEL_L); + if(input == NULL) { + perror("test_split_8 aborted at QRinput_new2():"); + return; + } + ret = Split_splitStringToQRinput((char *)data, input, QR_MODE_8, 1); + if(ret < 0) { + perror("test_split_8 aborted at Split_splitStringToQRinput():"); + QRinput_free(input); + return; + } + list = input->head; + i = 0; + while(list != NULL) { + memcpy(check + i, list->data, list->size); + i += list->size; + list = list->next; + } + if(i != len) { + printf("#%d: length is not correct. (%d should be %d)\n", num, i, len); + } + + check[i] = '\0'; + ret = memcmp(data, check, len); + if(ret != 0) { + printf("#%d: data mismatched.\n", num); + list = input->head; + i = 0; + while(list != NULL) { + ret = memcmp(data + i, list->data, list->size); + printf("wrong chunk:\n"); + printf(" position: %d\n", i); + printf(" mode : %d\n", list->mode); + printf(" size : %d\n", list->size); + printf(" data : %.*s\n", list->size, list->data); + i += list->size; + list = list->next; + } + exit(1); + } + QRinput_free(input); +} + +void monkey_split_8(int loop) +{ + int i; + + puts("Monkey test: Split_splitStringToQRinput() - 8bit char string."); + srand(0); + for(i=0; i<loop; i++) { + test_split_8(i); + } +} + +void test_encode_kanji(int num) +{ + QRcode *qrcode; + QRdata *qrdata; + int len, ret; + + len = fill8bitString(); + + qrcode = QRcode_encodeString((char *)data, 0, num % 4, QR_MODE_8, 1); + if(qrcode == NULL) { + if(errno == ERANGE) return; + perror("test_encdoe_kanji aborted at QRcode_encodeString():"); + return; + } + qrdata = QRcode_decode(qrcode); + if(qrdata == NULL) { + printf("#%d: Failed to decode this code.\n", num); + QRcode_free(qrcode); + return; + } + if(qrdata->size != len) { + printf("#%d: length mismatched (orig: %d, decoded: %d)\n", num, len, qrdata->size); + } + ret = memcmp(qrdata->data, data, len); + if(ret != 0) { + printf("#%d: data mismatched.\n", num); + } + QRdata_free(qrdata); + QRcode_free(qrcode); +} + +void monkey_encode_kanji(int loop) +{ + int i; + + puts("Monkey test: QRcode_encodeString() - kanji string."); + srand(0); + for(i=0; i<loop; i++) { + test_encode_kanji(i); + } +} + +void test_split_kanji(int num) +{ + QRinput *input; + QRinput_List *list; + int len, i, ret; + + len = fill8bitString(); + + input = QRinput_new2(0, QR_ECLEVEL_L); + if(input == NULL) { + perror("test_split_kanji aborted at QRinput_new2():"); + return; + } + ret = Split_splitStringToQRinput((char *)data, input, QR_MODE_KANJI, 1); + if(ret < 0) { + perror("test_split_kanji aborted at Split_splitStringToQRinput():"); + QRinput_free(input); + return; + } + list = input->head; + i = 0; + while(list != NULL) { + memcpy(check + i, list->data, list->size); + i += list->size; + list = list->next; + } + if(i != len) { + printf("#%d: length is not correct. (%d should be %d)\n", num, i, len); + } + + check[i] = '\0'; + ret = memcmp(data, check, len); + if(ret != 0) { + printf("#%d: data mismatched.\n", num); + list = input->head; + i = 0; + while(list != NULL) { + ret = memcmp(data + i, list->data, list->size); + printf("wrong chunk:\n"); + printf(" position: %d\n", i); + printf(" mode : %d\n", list->mode); + printf(" size : %d\n", list->size); + printf(" data : %.*s\n", list->size, list->data); + i += list->size; + list = list->next; + } + exit(1); + } + QRinput_free(input); +} + +void monkey_split_kanji(int loop) +{ + int i; + + puts("Monkey test: Split_splitStringToQRinput() - kanji string."); + srand(0); + for(i=0; i<loop; i++) { + test_split_kanji(i); + } +} + +void test_split_structure(int num) +{ + QRinput *input; + QRinput_Struct *s; + QRcode_List *codes, *list; + QRinput_InputList *il; + int version; + QRecLevel level; + int c, i, ret; + + version = (int)drand(40) + 1; + level = (QRecLevel)drand(4); + + fill8bitString(); + + input = QRinput_new2(version, level); + if(input == NULL) { + perror("test_split_structure aborted at QRinput_new2():"); + return; + } + ret = Split_splitStringToQRinput((char *)data, input, QR_MODE_KANJI, 1); + if(ret < 0) { + perror("test_split_structure aborted at Split_splitStringToQRinput():"); + QRinput_free(input); + return; + } + s = QRinput_splitQRinputToStruct(input); + if(s == NULL) { + if(errno != 0 && errno != ERANGE) { + perror("test_split_structure aborted at QRinput_splitQRinputToStruct():"); + } + QRinput_free(input); + return; + } + il = s->head; + i = 0; + while(il != NULL) { + if(il->input->version != version) { + printf("Test: version %d, level %c\n", version, levelChar[level]); + printf("wrong version number.\n"); + printQRinputInfo(il->input); + exit(1); + } + i++; + il = il->next; + } + codes = QRcode_encodeInputStructured(s); + if(codes == NULL) { + perror("test_split_structure aborted at QRcode_encodeInputStructured():"); + QRinput_free(input); + QRinput_Struct_free(s); + return; + } + list = codes; + il = s->head; + c = 0; + while(list != NULL) { + if(list->code->version != version) { + printf("#%d: data mismatched.\n", num); + printf("Test: version %d, level %c\n", version, levelChar[level]); + printf("code #%d\n", c); + printf("Version mismatch: %d should be %d\n", list->code->version, version); + printf("max bits: %d\n", QRspec_getDataLength(version, level) * 8 - 20); + printQRinputInfo(il->input); + printQRinput(input); + exit(1); + } + list = list->next; + il = il->next; + c++; + } + + QRinput_free(input); + QRinput_Struct_free(s); + QRcode_List_free(codes); +} + +void monkey_split_structure(int loop) +{ + int i; + + puts("Monkey test: QRinput_splitQRinputToStruct."); + srand(0); + for(i=0; i<loop; i++) { + test_split_structure(i); + } +} + +int main(int argc, char **argv) +{ + int loop = 1000; + if(argc == 2) { + loop = atoi(argv[1]); + } + monkey_split_an(loop); + monkey_encode_an(loop); + monkey_split_8(loop); + monkey_encode_8(loop); + monkey_split_kanji(loop); + monkey_encode_kanji(loop); + monkey_split_structure(loop); + + QRcode_clearCache(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_mqrspec.c b/contrib/qrencode-win32/tests/test_mqrspec.c new file mode 100644 index 0000000..22657f9 --- /dev/null +++ b/contrib/qrencode-win32/tests/test_mqrspec.c @@ -0,0 +1,178 @@ +#include <stdio.h> +#include <string.h> +#include "common.h" +#include "../mqrspec.h" + +unsigned char v4frame[] = { + 0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,0xc0,0x91,0x90,0x91,0x90,0x91,0x90,0x91,0x90,0x91, + 0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xc1,0xc0,0xc1,0xc1,0xc1,0xc0,0xc1,0xc0,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xc1,0xc0,0xc1,0xc1,0xc1,0xc0,0xc1,0xc0,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xc1,0xc0,0xc1,0xc1,0xc1,0xc0,0xc1,0xc0,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc0,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,0xc1,0xc0,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x91,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +void test_newFrame(void) +{ + int width, i, y; + unsigned char *frame; + + testStart("Test empty frames"); + for(i=1; i<MQRSPEC_VERSION_MAX; i++) { + frame = MQRspec_newFrame(i); + width = MQRspec_getWidth(i); + for(y=0; y<width; y++) { + assert_zero(memcmp(&frame[y * width], &v4frame[y * MQRSPEC_WIDTH_MAX], width), "Mismatch found in version %d, line %d.\n", i, y); + } + free(frame); + } + testFinish(); +} + +void test_newframe_invalid(void) +{ + unsigned char *frame; + + testStart("Checking MQRspec_newFrame with invalid version."); + frame = MQRspec_newFrame(0); + assert_null(frame, "MQRspec_newFrame(0) returns non-NULL."); + frame = MQRspec_newFrame(MQRSPEC_VERSION_MAX+1); + assert_null(frame, "MQRspec_newFrame(0) returns non-NULL."); + testFinish(); +} + +/* See Table 10 (pp.115) of Appendix 1, JIS X0510:2004 */ +static unsigned int calcFormatInfo(int type, int mask) +{ + unsigned int data, ecc, b, code; + int i, c; + + data = (type << 12) | (mask << 10); + ecc = data; + b = 1 << 14; + for(i=0; b != 0; i++) { + if(ecc & b) break; + b = b >> 1; + } + c = 4 - i; + code = 0x537 << c ; //10100110111 + b = 1 << (10 + c); + for(i=0; i<=c; i++) { + if(b & ecc) { + ecc ^= code; + } + code = code >> 1; + b = b >> 1; + } + + return (data | ecc) ^ 0x4445; +} + +/* See Table 10 of Appendix 1. (pp.115) */ +static const int typeTable[4][3] = { + { 0, -1, -1}, + { 1, 2, -1}, + { 3, 4, -1}, + { 5, 6, 7} +}; + +void test_format(void) +{ + unsigned int format; + int version, l, mask; + int type; + int err = 0; + + testStart("Format info test"); + for(version=1; version<=4; version++) { + for(l=0; l<3; l++) { + for(mask=0; mask<4; mask++) { + format = MQRspec_getFormatInfo(mask, version, (QRecLevel)l); + type = typeTable[version - 1][l]; + if(type == -1) { + if(format != 0) { + printf("Error in version %d, level %d, mask %d\n", + version, l, mask); + err++; + } + } else { + if(format != calcFormatInfo(type, mask)) { + printf("Error in version %d, level %d, mask %d\n", + version, l, mask); + err++; + } + } + } + } + } + testEnd(err); +} + +void print_format(void) +{ + unsigned int format; + int i, j; + + for(i=0; i<4; i++) { + for(j=0; j<8; j++) { + format = calcFormatInfo(j, i); + printf("0x%04x, ", format); + } + printf("\n"); + } +} + +/** + * See Table 7 of Appendix 1. + */ +int datalen[4][3] = { + { 20, 0, 0}, + { 40, 32, 0}, + { 84, 68, 0}, + {128, 112, 80}, +}; + +void test_dataLength(void) +{ + int v, l; + int bits; + int err = 0; + + testStart("Test dataLength"); + for(v=0; v<4; v++) { + for(l=0; l<3; l++) { + bits = MQRspec_getDataLengthBit(v+1, (QRecLevel)l); + if(bits != datalen[v][l]) { + printf("Error in version %d, level %d.\n", v, l); + err++; + } + } + } + testEnd(err); +} + +int main(void) +{ + test_newFrame(); + test_newframe_invalid(); + //print_format(); + test_format(); + test_dataLength(); + + MQRspec_clearCache(); + + report(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_qrencode.c b/contrib/qrencode-win32/tests/test_qrencode.c new file mode 100644 index 0000000..d1e0918 --- /dev/null +++ b/contrib/qrencode-win32/tests/test_qrencode.c @@ -0,0 +1,968 @@ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include "common.h" +#include "../qrencode_inner.h" +#include "../qrspec.h" +#include "../mqrspec.h" +#include "../qrinput.h" +#include "../mask.h" +#include "../rscode.h" +#include "../split.h" +#include "decoder.h" + +static const char decodeAnTable[45] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', '$', '%', '*', + '+', '-', '.', '/', ':' +}; + +typedef struct { + char *str; + int version; + QRecLevel level; + QRencodeMode hint; + int casesensitive; +} TestString; +#define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0])) + +#define drand(__scale__) ((__scale__) * (double)rand() / ((double)RAND_MAX + 1.0)) + +int inputSize(QRinput *input) +{ + BitStream *bstream; + int size; + + bstream = QRinput_mergeBitStream(input); + size = BitStream_size(bstream); + BitStream_free(bstream); + + return size; +} + +void test_qrraw_new(void) +{ + int i; + QRinput *stream; + char num[9] = "01234567"; + QRRawCode *raw; + + testStart("Test QRRaw_new()"); + stream = QRinput_new(); + QRinput_setVersion(stream, 10); + QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_Q); + QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); + + raw = QRraw_new(stream); + assert_nonnull(raw, "Failed QRraw_new().\n"); + assert_zero(raw->count, "QRraw.count = %d != 0\n", raw->count); + assert_equal(raw->version, 10, "QRraw.version was not as expected. (%d)\n", raw->version); + assert_equal(raw->dataLength, 19 * 6 + 20 * 2, "QRraw.dataLength was not as expected.\n"); + assert_equal(raw->eccLength, 24 * 8, "QRraw.eccLength was not as expected.\n"); + assert_equal(raw->b1, 6, "QRraw.b1 was not as expected.\n"); + assert_equal(raw->blocks, 8, "QRraw.blocks was not as expected.\n"); + + for(i=0; i<raw->b1; i++) { + assert_equal(raw->rsblock[i].dataLength, 19, "QRraw.rsblock[].dataLength was not as expected.\n"); + } + for(i=raw->b1; i<raw->blocks; i++) { + assert_equal(raw->rsblock[i].dataLength, 20, "QRraw.rsblock[].dataLength was not as expected.\n"); + } + for(i=0; i<raw->blocks; i++) { + assert_equal(raw->rsblock[i].eccLength, 24, "QRraw.rsblock[].eccLength was not as expected.\n"); + } + + QRinput_free(stream); + QRraw_free(raw); + testFinish(); +} + +void test_iterate() +{ + int i; + QRinput *stream; + char num[9] = "01234567"; + unsigned char *data; + QRRawCode *raw; + int err = 0; + + testStart("Test getCode (1-L)"); + stream = QRinput_new(); + QRinput_setVersion(stream, 1); + QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_L); + QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); + + raw = QRraw_new(stream); + data = raw->datacode; + for(i=0; i<raw->dataLength; i++) { + if(data[i] != QRraw_getCode(raw)) { + err++; + } + } + + QRinput_free(stream); + QRraw_free(raw); + testEnd(err); +} + +void test_iterate2() +{ + int i; + QRinput *stream; + char num[9] = "01234567"; + QRRawCode *raw; + int err = 0; + unsigned char correct[] = { + 0x10, 0x11, 0xec, 0xec, 0x20, 0xec, 0x11, 0x11, + 0x0c, 0x11, 0xec, 0xec, 0x56, 0xec, 0x11, 0x11, + 0x61, 0x11, 0xec, 0xec, 0x80, 0xec, 0x11, 0x11, + 0xec, 0x11, 0xec, 0xec, 0x11, 0xec, 0x11, 0x11, + 0xec, 0x11, 0xec, 0xec, 0x11, 0xec, 0x11, 0x11, + 0xec, 0x11, 0xec, 0xec, 0x11, 0x11, + 0x5c, 0xde, 0x68, 0x68, 0x4d, 0xb3, 0xdb, 0xdb, + 0xd5, 0x14, 0xe1, 0xe1, 0x5b, 0x2a, 0x1f, 0x1f, + 0x49, 0xc4, 0x78, 0x78, 0xf7, 0xe0, 0x5b, 0x5b, + 0xc3, 0xa7, 0xc1, 0xc1, 0x5d, 0x9a, 0xea, 0xea, + 0x48, 0xad, 0x9d, 0x9d, 0x58, 0xb3, 0x3f, 0x3f, + 0x10, 0xdb, 0xbf, 0xbf, 0xeb, 0xec, 0x05, 0x05, + 0x98, 0x35, 0x83, 0x83, 0xa9, 0x95, 0xa6, 0xa6, + 0xea, 0x7b, 0x8d, 0x8d, 0x04, 0x3c, 0x08, 0x08, + 0x64, 0xce, 0x3e, 0x3e, 0x4d, 0x9b, 0x30, 0x30, + 0x4e, 0x65, 0xd6, 0xd6, 0xe4, 0x53, 0x2c, 0x2c, + 0x46, 0x1d, 0x2e, 0x2e, 0x29, 0x16, 0x27, 0x27 + }; + + testStart("Test getCode (5-H)"); + stream = QRinput_new(); + QRinput_setVersion(stream, 5); + QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_H); + QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); + + raw = QRraw_new(stream); + for(i=0; i<raw->dataLength; i++) { + if(correct[i] != QRraw_getCode(raw)) { + err++; + } + } + + QRinput_free(stream); + QRraw_free(raw); + testEnd(err); +} + +void print_filler(void) +{ + int width; + int version = 7; + unsigned char *frame; + + width = QRspec_getWidth(version); + frame = FrameFiller_test(version); + if(frame == NULL) abort(); + + printFrame(width, frame); + free(frame); +} + +void test_filler(void) +{ + unsigned char *frame; + int i, j, w, e, length; + + testStart("Frame filler test"); + for(i=1; i<=QRSPEC_VERSION_MAX; i++) { + length = QRspec_getDataLength(i, QR_ECLEVEL_L) * 8 + + QRspec_getECCLength(i, QR_ECLEVEL_L) * 8 + + QRspec_getRemainder(i); + frame = FrameFiller_test(i); + if(frame == NULL) { + assert_nonnull(frame, "Something wrong in version %d\n", i); + } else { + w = QRspec_getWidth(i); + e = 0; + for(j=0; j<w*w; j++) { + if(frame[j] == 0) e++; + } + assert_zero(e, "Not filled bit is found. (%d,%d)\n", j%w,j/w); + e = w * (w - 9 - ((i > 6)?3:0)); + assert_equal(frame[e], (unsigned char)((length - 1) & 127) | 0x80, + "Number of cell does not match.\n"); + free(frame); + } + } + testFinish(); +} + +void print_fillerMQR(void) +{ + int width; + int version = 3; + unsigned char *frame; + + for(version = 1; version <= MQRSPEC_VERSION_MAX; version++) { + width = MQRspec_getWidth(version); + frame = FrameFiller_testMQR(version); + if(frame == NULL) abort(); + + printFrame(width, frame); + } +} + +void test_fillerMQR(void) +{ + unsigned char *frame; + int i, j, w, e, length; + + testStart("Micro QR Code Frame filler test"); + for(i=1; i<=MQRSPEC_VERSION_MAX; i++) { + length = MQRspec_getDataLengthBit(i, QR_ECLEVEL_L) + + MQRspec_getECCLength(i, QR_ECLEVEL_L) * 8; + frame = FrameFiller_testMQR(i); + if(frame == NULL) { + assert_nonnull(frame, "Something wrong in version %d\n", i); + } else { + w = MQRspec_getWidth(i); + e = 0; + for(j=0; j<w*w; j++) { + if(frame[j] == 0) e++; + } + assert_zero(e, "Not filled bit is found. (%d,%d)\n", j%w,j/w); + if(i & 1) { + e = w * 9 + 1; + } else { + e = w * (w - 1) + 1; + } + assert_equal(frame[e], (unsigned char)((length - 1) & 127) | 0x80, + "Number of cell does not match in version %d.\n", i); + free(frame); + } + } + testFinish(); +} + +void test_format(void) +{ + unsigned char *frame; + unsigned int format; + int width; + int i; + unsigned int decode; + int blacks, b1 = 0, b2 = 0; + + testStart("Test format information(level L,mask 0)"); + width = QRspec_getWidth(1); + frame = QRspec_newFrame(1); + if(frame == NULL) goto ABORT; + format = QRspec_getFormatInfo(1, QR_ECLEVEL_L); + blacks = Mask_writeFormatInformation(width, frame, 1, QR_ECLEVEL_L); + decode = 0; + for(i=0; i<15; i++) { + if((1<<i) & format) b2 += 2; + } + for(i=0; i<8; i++) { + decode = decode << 1; + decode |= frame[width * 8 + i + (i > 5)] & 1; + if(decode & 1) b1++; + } + for(i=0; i<7; i++) { + decode = decode << 1; + decode |= frame[width * ((6 - i) + (i < 1)) + 8] & 1; + if(decode & 1) b1++; + } + if(decode != format) { + printf("Upper-left format information is invalid.\n"); + printf("%08x, %08x\n", format, decode); + testEnd(1); + return; + } + decode = 0; + for(i=0; i<7; i++) { + decode = decode << 1; + decode |= frame[width * (width - 1 - i) + 8] & 1; + if(decode & 1) b1++; + } + for(i=0; i<8; i++) { + decode = decode << 1; + decode |= frame[width * 8 + width - 8 + i] & 1; + if(decode & 1) b1++; + } + if(decode != format) { + printf("Bottom and right format information is invalid.\n"); + printf("%08x, %08x\n", format, decode); + testEnd(1); + return; + } + + if(b2 != blacks || b1 != b2) { + printf("Number of dark modules is incorrect.\n"); + printf("Return value: %d, dark modules in frame: %d, should be: %d\n", blacks, b1, b2); + testEnd(1); + return; + } + + free(frame); + +ABORT: + testEnd(0); +} + +unsigned int m1pat[8][21] = { + {0x1fc77f, 0x105c41, 0x174c5d, 0x174b5d, 0x175b5d, 0x104241, 0x1fd57f, + 0x000000, 0x154512, 0x1a16a2, 0x0376ee, 0x19abb2, 0x04eee1, 0x001442, + 0x1fc111, 0x10444b, 0x175d5d, 0x174aae, 0x175ae5, 0x1043b8, 0x1fd2e5}, + {0x1fdd7f, 0x104641, 0x17565d, 0x17415d, 0x17415d, 0x105841, 0x1fd57f, + 0x000a00, 0x146f25, 0x10bc08, 0x09dc44, 0x130118, 0x0e444b, 0x001ee8, + 0x1fdbbb, 0x104ee1, 0x1747f7, 0x174004, 0x17504f, 0x104912, 0x1fd84f}, + {0x1fcb7f, 0x104f41, 0x17505d, 0x17585d, 0x17575d, 0x105141, 0x1fd57f, + 0x001300, 0x17c97c, 0x02b52c, 0x046a9f, 0x01083c, 0x03f290, 0x0017cc, + 0x1fcd60, 0x1057c5, 0x17512c, 0x175920, 0x175694, 0x104036, 0x1fde94}, + {0x1fdb7f, 0x105441, 0x174d5d, 0x17585d, 0x174c5d, 0x104c41, 0x1fd57f, + 0x001800, 0x16e44b, 0x02b52c, 0x12f1f2, 0x1a258a, 0x03f290, 0x001ca1, + 0x1fd0d6, 0x1057c5, 0x174a41, 0x175496, 0x175694, 0x104b5b, 0x1fd322}, + {0x1fd37f, 0x104741, 0x17475d, 0x175f5d, 0x175f5d, 0x105941, 0x1fd57f, + 0x001400, 0x1171f9, 0x0c8dcf, 0x15ed83, 0x108f20, 0x0dca73, 0x001f2f, + 0x1fda7c, 0x1040d9, 0x1759cf, 0x1741c3, 0x174188, 0x10472a, 0x1fd677}, + {0x1fcd7f, 0x105741, 0x17505d, 0x17545d, 0x17475d, 0x104941, 0x1fd57f, + 0x001b00, 0x1059ce, 0x05a95d, 0x046a9f, 0x03001c, 0x0e444b, 0x001fec, + 0x1fcd60, 0x104bb4, 0x17412c, 0x174100, 0x17404f, 0x104816, 0x1fde94}, + {0x1fdd7f, 0x105741, 0x17545d, 0x17445d, 0x17555d, 0x104f41, 0x1fd57f, + 0x000b00, 0x13fd97, 0x05a95d, 0x00f8d6, 0x028604, 0x0e444b, 0x001f2f, + 0x1fd9f2, 0x105bb4, 0x175365, 0x175718, 0x17404f, 0x1048d5, 0x1fda06}, + {0x1fc77f, 0x104841, 0x174e5d, 0x174b5d, 0x174f5d, 0x105041, 0x1fd57f, + 0x000400, 0x12d7a0, 0x1a16a2, 0x0a527c, 0x1d39fb, 0x04eee1, 0x0010d0, + 0x1fc358, 0x10544b, 0x1749cf, 0x1758e7, 0x174ae5, 0x10472a, 0x1fd0ac} +}; + +void test_encode(void) +{ + QRinput *stream; + char num[9] = "01234567"; + unsigned char *frame; + int err = 0; + int x, y, w; + int mask; + QRcode *qrcode; + + testStart("Test encode (1-M)"); + stream = QRinput_new(); + if(stream == NULL) goto ABORT; + QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); + for(mask=0; mask<8; mask++) { + QRinput_setVersion(stream, 1); + QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_M); + qrcode = QRcode_encodeMask(stream, mask); + if(qrcode == NULL) goto ABORT; + w = qrcode->width; + frame = qrcode->data; + for(y=0; y<w; y++) { + for(x=0; x<w; x++) { + if(((m1pat[mask][y] >> (20-x)) & 1) != (frame[y*w+x]&1)) { + printf("Diff in mask=%d (%d,%d)\n", mask, x, y); + err++; + } + } + } + QRcode_free(qrcode); + } + QRinput_free(stream); +ABORT: + testEnd(err); +} + +void test_encode2(void) +{ + QRcode *qrcode; + + testStart("Test encode (2-H) (no padding test)"); + qrcode = QRcode_encodeString("abcdefghijk123456789012", 0, QR_ECLEVEL_H, QR_MODE_8, 0); + testEndExp(qrcode->version == 2); + QRcode_free(qrcode); +} + +void test_encode3(void) +{ + QRcode *code1, *code2; + QRinput *input; + + testStart("Compare encodeString and encodeInput"); + code1 = QRcode_encodeString("0123456", 0, QR_ECLEVEL_L, QR_MODE_8, 0); + input = QRinput_new2(0, QR_ECLEVEL_L); + QRinput_append(input, QR_MODE_NUM, 7, (unsigned char *)"0123456"); + code2 = QRcode_encodeInput(input); + testEnd(memcmp(code1->data, code2->data, code1->width * code1->width)); + + QRcode_free(code1); + QRcode_free(code2); + QRinput_free(input); +} + +void test_encodeNull(void) +{ + QRcode *qrcode; + + testStart("Test encode NULL."); + qrcode = QRcode_encodeString(NULL, 0, QR_ECLEVEL_H, QR_MODE_8, 0); + assert_null(qrcode, "QRcode_encodeString() returned something.\n"); + testFinish(); + if(qrcode != NULL) QRcode_free(qrcode); +} + + +void test_encodeEmpty(void) +{ + QRcode *qrcode; + + testStart("Test encode an empty string."); + qrcode = QRcode_encodeString("", 0, QR_ECLEVEL_H, QR_MODE_8, 0); + assert_null(qrcode, "QRcode_encodeString() returned something.\n"); + testFinish(); + if(qrcode != NULL) QRcode_free(qrcode); +} + +void test_encodeNull8(void) +{ + QRcode *qrcode; + + testStart("Test encode NULL."); + qrcode = QRcode_encodeString8bit(NULL, 0, QR_ECLEVEL_H); + assert_null(qrcode, "QRcode_encodeString8bit() returned something.\n"); + testFinish(); + if(qrcode != NULL) QRcode_free(qrcode); +} + + +void test_encodeEmpty8(void) +{ + QRcode *qrcode; + + testStart("Test encode an empty string."); + qrcode = QRcode_encodeString8bit("", 0, QR_ECLEVEL_H); + assert_null(qrcode, "QRcode_encodeString8bit() returned something.\n"); + testFinish(); + if(qrcode != NULL) QRcode_free(qrcode); +} + +void test_encodeTooLong(void) +{ + QRcode *code; + char *data; + + testStart("Encode too large data"); + data = (char *)malloc(4300); + memset(data, 'a', 4295); + memset(data + 4295, '0', 4); + data[4299] = '\0'; + + code = QRcode_encodeString(data, 0, QR_ECLEVEL_L, QR_MODE_8, 0); + assert_null(code, "Too large data is incorrectly accepted.\n"); + assert_equal(errno, ERANGE, "errno != ERANGE\n"); + testFinish(); + + if(code != NULL) { + QRcode_free(code); + } + free(data); +} + +void test_01234567(void) +{ + QRinput *stream; + char num[9] = "01234567"; + int i, err = 0; + QRcode *qrcode; + unsigned char correct[] = { +0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0x84, 0x03, 0x02, 0x03, 0x03, 0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, +0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc0, 0x84, 0x03, 0x03, 0x03, 0x03, 0xc0, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, +0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, 0xc0, 0x85, 0x02, 0x02, 0x02, 0x02, 0xc0, 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, +0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, 0xc0, 0x85, 0x03, 0x02, 0x02, 0x02, 0xc0, 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, +0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, 0xc0, 0x85, 0x02, 0x03, 0x03, 0x03, 0xc0, 0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, +0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc0, 0x85, 0x02, 0x02, 0x02, 0x03, 0xc0, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, +0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0x91, 0x90, 0x91, 0x90, 0x91, 0xc0, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, +0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x85, 0x02, 0x02, 0x03, 0x03, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, +0x85, 0x84, 0x85, 0x85, 0x85, 0x85, 0x91, 0x84, 0x84, 0x03, 0x02, 0x02, 0x03, 0x84, 0x85, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, +0x02, 0x02, 0x02, 0x03, 0x02, 0x03, 0x90, 0x03, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0x03, 0x02, 0x03, 0x03, 0x02, 0x02, +0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x91, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, +0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x90, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, +0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x91, 0x03, 0x03, 0x02, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, +0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x81, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, +0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0x84, 0x03, 0x03, 0x02, 0x03, 0x02, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, +0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc0, 0x85, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x02, 0x03, 0x02, 0x03, +0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, 0xc0, 0x85, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x03, 0x02, 0x03, 0x03, 0x02, 0x02, +0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, 0xc0, 0x85, 0x03, 0x02, 0x02, 0x03, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, +0xc1, 0xc0, 0xc1, 0xc1, 0xc1, 0xc0, 0xc1, 0xc0, 0x85, 0x02, 0x03, 0x03, 0x02, 0x03, 0x02, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, +0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc0, 0x84, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x02, 0x03, 0x03, 0x02, +0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0x85, 0x03, 0x03, 0x03, 0x02, 0x03, 0x02, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02}; + + testStart("Encode 01234567 in 1-M"); + stream = QRinput_new2(1, QR_ECLEVEL_M); + QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); + qrcode = QRcode_encodeInput(stream); + for(i=0; i<qrcode->width * qrcode->width; i++) { + if(qrcode->data[i] != correct[i]) { + err++; + } + } + testEnd(err); + QRinput_free(stream); + QRcode_free(qrcode); +} + +void print_01234567(void) +{ + QRinput *stream; + char num[9] = "01234567"; + QRcode *qrcode; + + stream = QRinput_new2(1, QR_ECLEVEL_M); + QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num); + qrcode = QRcode_encodeInput(stream); + printQRcode(qrcode); + QRinput_free(stream); + QRcode_free(qrcode); +} + +void test_invalid_input(void) +{ + QRinput *input; + QRcode *code; + + testStart("Testing invalid input."); + input = QRinput_new(); + QRinput_append(input, QR_MODE_AN, 5, (unsigned char *)"TEST1"); + input->version = -1; + input->level = QR_ECLEVEL_L; + code = QRcode_encodeInput(input); + assert_null(code, "invalid version(-1) was not checked.\n"); + if(code != NULL) QRcode_free(code); + + input->version = 41; + input->level = QR_ECLEVEL_L; + code = QRcode_encodeInput(input); + assert_null(code, "invalid version(41) access was not checked.\n"); + if(code != NULL) QRcode_free(code); + + input->version = 1; + input->level = (QRecLevel)(QR_ECLEVEL_H + 1); + code = QRcode_encodeInput(input); + assert_null(code, "invalid level(H+1) access was not checked.\n"); + if(code != NULL) QRcode_free(code); + + input->version = 1; + input->level = (QRecLevel)-1; + code = QRcode_encodeInput(input); + assert_null(code, "invalid level(-1) access was not checked.\n"); + if(code != NULL) QRcode_free(code); + + QRinput_free(input); + + testFinish(); +} + +void test_struct_semilong(void) +{ + QRcode_List *codes, *list; + const char *str = "asdfasdfasdfasdfasdfASDFASDASDFASDFAsdfasdfasdfasdASDFASDFADSADadsfasdf"; + int num, size; + + testStart("Testing semi-long structured-append symbols"); + codes = QRcode_encodeString8bitStructured(str, 1, QR_ECLEVEL_L); + list = codes; + num = 0; + while(list != NULL) { + num++; + assert_equal(list->code->version, 1, "version number is %d (1 expected)\n", list->code->version); + list = list->next; + } + size = QRcode_List_size(codes); + assert_equal(num, size, "QRcode_List_size returns wrong size?"); + QRcode_List_free(codes); + + codes = QRcode_encodeStringStructured(str, 1, QR_ECLEVEL_L, QR_MODE_8, 1); + list = codes; + num = 0; + while(list != NULL) { + num++; + assert_equal(list->code->version, 1, "version number is %d (1 expected)\n", list->code->version); + list = list->next; + } + size = QRcode_List_size(codes); + assert_equal(num, size, "QRcode_List_size returns wrong size?"); + QRcode_List_free(codes); + + testFinish(); +} + +void test_struct_example(void) +{ + QRcode_List *codes, *list; + const char *str = "an example of four Structured Append symbols,"; + int num; + + testStart("Testing the example of structured-append symbols"); + codes = QRcode_encodeString8bitStructured(str, 1, QR_ECLEVEL_M); + list = codes; + num = 0; + while(list != NULL) { + num++; + assert_equal(list->code->version, 1, "version number is %d (1 expected)\n", list->code->version); + list = list->next; + } + assert_equal(num, 4, "number of symbols is %d (4 expected).", num); + testFinish(); + QRcode_List_free(codes); +} + +void test_null_free(void) +{ + testStart("Testing free NULL pointers"); + assert_nothing(QRcode_free(NULL), "Check QRcode_free(NULL).\n"); + assert_nothing(QRcode_List_free(NULL), "Check QRcode_List_free(NULL).\n"); + assert_nothing(QRraw_free(NULL), "Check QRraw_free(NULL).\n"); + testFinish(); +} + +void test_encodeTooLongMQR(void) +{ + QRcode *code; + char *data[] = {"012345", "ABC0EFG", "0123456789", "0123456789ABCDEFG"}; + + testStart("Encode too large data for MQR."); + + code = QRcode_encodeStringMQR(data[0], 1, QR_ECLEVEL_L, QR_MODE_8, 0); + assert_null(code, "6 byte length numeric string was accepted to version 1.\n"); + assert_equal(errno, ERANGE, "errno != ERANGE\n"); + code = QRcode_encodeStringMQR(data[1], 2, QR_ECLEVEL_L, QR_MODE_8, 0); + assert_null(code, "7 byte length alphanumeric string was accepted to version 2.\n"); + assert_equal(errno, ERANGE, "errno != ERANGE\n"); + code = QRcode_encodeString8bitMQR(data[2], 3, QR_ECLEVEL_L); + assert_null(code, "9 byte length 8bit string was accepted to version 3.\n"); + assert_equal(errno, ERANGE, "errno != ERANGE\n"); + code = QRcode_encodeString8bitMQR(data[3], 4, QR_ECLEVEL_L); + assert_null(code, "16 byte length 8bit string was accepted to version 4.\n"); + assert_equal(errno, ERANGE, "errno != ERANGE\n"); + testFinish(); + + if(code != NULL) { + printQRcode(code); + QRcode_free(code); + } +} + +void test_mqrraw_new(void) +{ + QRinput *stream; + char *num = "01234"; + unsigned char datacode[] = {0xa0, 0x62, 0x02}; + MQRRawCode *raw; + + testStart("Test MQRRaw_new()"); + stream = QRinput_newMQR(1, QR_ECLEVEL_L); + QRinput_append(stream, QR_MODE_NUM, 5, (unsigned char *)num); + + raw = MQRraw_new(stream); + assert_nonnull(raw, "Failed MQRraw_new().\n"); + assert_zero(raw->count, "MQRraw.count = %d != 0\n", raw->count); + assert_equal(raw->version, 1, "MQRraw.version was not as expected. (%d)\n", raw->version); + assert_equal(raw->dataLength, 3, "MQRraw.dataLength was not as expected.\n"); + assert_equal(raw->eccLength, 2, "MQRraw.eccLength was not as expected.\n"); + assert_zero(memcmp(raw->datacode, datacode, 3), "Datacode doesn't match.\n"); + + + QRinput_free(stream); + MQRraw_free(raw); + testFinish(); +} + +void test_encodeData(void) +{ + QRcode *qrcode; + + testStart("Test QRencode_encodeData."); + qrcode = QRcode_encodeData(0, NULL, 0, QR_ECLEVEL_H); + assert_null(qrcode, "QRcode_encodeData(NULL, 0) returned something.\n"); + if(qrcode != NULL) QRcode_free(qrcode); + + qrcode = QRcode_encodeData(10, (unsigned char*)"test\0\0test", 0, QR_ECLEVEL_H); + assert_nonnull(qrcode, "QRcode_encodeData() failed.\n"); + if(qrcode != NULL) QRcode_free(qrcode); + + testFinish(); +} + +void test_formatInfo(void) +{ + QRcode *qrcode; + QRecLevel level; + int mask; + int ret; + + testStart("Test format info in QR code."); + qrcode = QRcode_encodeString("AC-42", 1, QR_ECLEVEL_H, QR_MODE_8, 1); + ret = QRcode_decodeFormat(qrcode, &level, &mask); + assert_zero(ret, "Failed to decode.\n"); + assert_equal(level, QR_ECLEVEL_H, "Decoded format is wrong.\n"); + + if(qrcode != NULL) QRcode_free(qrcode); + + testFinish(); +} + +void test_formatInfoMQR(void) +{ + QRcode *qrcode; + QRecLevel level; + int version, mask; + int i, ret; + + testStart("Test format info in Micro QR code."); + for(i=0; i<8; i++) { + qrcode = QRcode_encodeStringMQR("1", + MQRformat[i].version, + MQRformat[i].level, + QR_MODE_8, 1); + ret = QRcode_decodeFormatMQR(qrcode, &version, &level, &mask); + assert_zero(ret, "Failed to decode.\n"); + assert_equal(MQRformat[i].version, version, "Decoded verion is wrong.\n"); + assert_equal(MQRformat[i].level, level, "Decoded level is wrong.\n"); + QRcode_free(qrcode); + } + + testFinish(); +} + +void test_decodeSimple(void) +{ + char *str = "AC-42"; + QRcode *qrcode; + QRdata *qrdata; + + testStart("Test code words."); + qrcode = QRcode_encodeString(str, 1, QR_ECLEVEL_H, QR_MODE_8, 1); + qrdata = QRcode_decode(qrcode); + + assert_nonnull(qrdata, "Failed to decode.\n"); + if(qrdata != NULL) { + assert_equal(strlen(str), qrdata->size, "Lengths of input/output mismatched: %d, expected %d.\n", qrdata->size, (int)strlen(str)); + assert_zero(strncmp(str, (char *)(qrdata->data), qrdata->size), "Decoded data %s is different from the original %s\n", qrdata->data, str); + } + if(qrdata != NULL) QRdata_free(qrdata); + if(qrcode != NULL) QRcode_free(qrcode); + + testFinish(); +} + + +void test_decodeLong(void) +{ + char *str = "12345678901234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ?????????????"; + QRcode *qrcode; + QRdata *qrdata; + + testStart("Test code words (long, splitted)."); + qrcode = QRcode_encodeString(str, 0, QR_ECLEVEL_H, QR_MODE_8, 1); + qrdata = QRcode_decode(qrcode); + + assert_nonnull(qrdata, "Failed to decode.\n"); + if(qrdata != NULL) { + assert_equal(strlen(str), qrdata->size, "Lengths of input/output mismatched.\n"); + assert_zero(strncmp(str, (char *)(qrdata->data), qrdata->size), "Decoded data %s is different from the original %s\n", qrdata->data, str); + } + if(qrdata != NULL) QRdata_free(qrdata); + if(qrcode != NULL) QRcode_free(qrcode); + + testFinish(); +} + +void test_decodeVeryLong(void) +{ + char str[4000]; + int i; + QRcode *qrcode; + QRdata *qrdata; + + testStart("Test code words (very long string)."); + + for(i=0; i<3999; i++) { + str[i] = decodeAnTable[(int)drand(45)]; + } + str[3999] = '\0'; + + qrcode = QRcode_encodeString(str, 0, QR_ECLEVEL_L, QR_MODE_8, 0); + qrdata = QRcode_decode(qrcode); + + assert_nonnull(qrdata, "Failed to decode.\n"); + if(qrdata != NULL) { + assert_equal(strlen(str), qrdata->size, "Lengths of input/output mismatched.\n"); + assert_zero(strncmp(str, (char *)(qrdata->data), qrdata->size), "Decoded data %s is different from the original %s\n", qrdata->data, str); + } + if(qrdata != NULL) QRdata_free(qrdata); + if(qrcode != NULL) QRcode_free(qrcode); + + testFinish(); +} + +void test_decodeShortMQR(void) +{ + char str[]="55"; + QRcode *qrcode; + QRdata *qrdata; + int i; + + testStart("Test code words (MQR)."); + for(i=0; i<8; i++) { + qrcode = QRcode_encodeStringMQR(str, + MQRformat[i].version, + MQRformat[i].level, + QR_MODE_8, 1); + qrdata = QRcode_decodeMQR(qrcode); + + assert_nonnull(qrdata, "Failed to decode.\n"); + assert_zero(strcmp((char *)qrdata->data, str), "Decoded data (%s) mismatched (%s)\n", (char *)qrdata->data, str); + if(qrdata != NULL) QRdata_free(qrdata); + if(qrcode != NULL) QRcode_free(qrcode); + } + + testFinish(); +} + +void test_oddBitCalcMQR(void) +{ + /* test issue #25 (odd bits calculation bug) */ + /* test pattern contributed by vlad417 */ + TestString tests[] = { + {"46194", 1, QR_ECLEVEL_L, QR_MODE_8, 1}, + {"WBA5Y47YPQQ", 3, QR_ECLEVEL_L, QR_MODE_8, 1} + }; + QRcode *qrcode; + QRdata *qrdata; + int i; + + testStart("Odd bits calculation bug checking (MQR)."); + + for(i=0; i<_countof(tests); i++) { + qrcode = QRcode_encodeStringMQR(tests[i].str, + tests[i].version, + tests[i].level, + tests[i].hint, + tests[i].casesensitive); + assert_nonnull(qrcode, "Failed to encode: %s\n", tests[i].str); + if(qrcode == NULL) continue; + qrdata = QRcode_decodeMQR(qrcode); + assert_nonnull(qrdata, "Failed to decode.\n"); + assert_zero(strcmp((char *)qrdata->data, tests[i].str), "Decoded data (%s) mismatched (%s)\n", (char *)qrdata->data, tests[i].str); + if(qrdata != NULL) QRdata_free(qrdata); + QRcode_free(qrcode); + } + + testFinish(); +} + +void test_mqrencode(void) +{ + char *str = "MICROQR"; + char pattern[] = { + "#######_#_#_#_#" + "#_____#_#__####" + "#_###_#_#_####_" + "#_###_#_#__##_#" + "#_###_#___#__##" + "#_____#____#_#_" + "#######__##_#_#" + "_________#__#__" + "#___#__####_#_#" + "_#######_#_##_#" + "##___#_#____#__" + "_##_#_####____#" + "#__###___#__##_" + "_###_#_###_#_#_" + "##____####_###_" + }; + QRcode qrcode; + QRdata *qrdata; + unsigned char *frame; + int i; + + testStart("Encoding test (MQR)."); + + qrcode.width = 15; + qrcode.version = 3; + + frame = MQRspec_newFrame(qrcode.version); + for(i=0; i<225; i++) { + frame[i] ^= (pattern[i] == '#')?1:0; + } + + qrcode.data = frame; + qrdata = QRcode_decodeMQR(&qrcode); + assert_equal(qrdata->version, 3, "Format info decoder returns wrong version number: %d (%d expected)\n", qrdata->version, 3); + assert_equal(qrdata->level, 1, "Format info decoder returns wrong level: %d (%d expected)\n", qrdata->level, 1); + assert_zero(strcmp((char *)qrdata->data, str), "Decoded data (%s) mismatched (%s)\n", (char *)qrdata->data, str); + + QRdata_free(qrdata); + free(frame); + + testFinish(); +} + +void test_apiversion(void) +{ + int major_version, minor_version, micro_version; + char *str, *str2; + + testStart("API Version check"); + QRcode_APIVersion(&major_version, &minor_version, µ_version); + assert_equal(major_version, MAJOR_VERSION, "Major version number mismatched: %d (%d expected)\n", major_version, MAJOR_VERSION); + assert_equal(minor_version, MINOR_VERSION, "Minor version number mismatched: %d (%d expected)\n", minor_version, MINOR_VERSION); + assert_equal(micro_version, MICRO_VERSION, "Micro version number mismatched: %d (%d expected)\n", micro_version, MICRO_VERSION); + str = QRcode_APIVersionString(); + str2 = QRcode_APIVersionString(); + assert_zero(strcmp(VERSION, str), "Version string mismatched: %s (%s expected)\n", str, VERSION); + assert_equal(str, str2, "Version strings are not identical."); + testFinish(); +} + +int main(void) +{ + test_iterate(); + test_iterate2(); + //print_filler(); + test_filler(); + test_format(); + test_encode(); + test_encode2(); + test_encode3(); + test_encodeNull(); + test_encodeEmpty(); + test_encodeNull8(); + test_encodeEmpty8(); + test_encodeTooLong(); + test_01234567(); + test_invalid_input(); +// print_01234567(); + test_struct_example(); + test_struct_semilong(); + test_null_free(); + test_qrraw_new(); + test_mqrraw_new(); + test_encodeData(); + test_formatInfo(); + test_decodeSimple(); + test_decodeLong(); + test_decodeVeryLong(); + //print_fillerMQR(); + test_fillerMQR(); + test_formatInfoMQR(); + test_encodeTooLongMQR(); + test_decodeShortMQR(); + test_oddBitCalcMQR(); + test_mqrencode(); + test_apiversion(); + + QRcode_clearCache(); + + report(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_qrinput.c b/contrib/qrencode-win32/tests/test_qrinput.c new file mode 100644 index 0000000..cfff47b --- /dev/null +++ b/contrib/qrencode-win32/tests/test_qrinput.c @@ -0,0 +1,1007 @@ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include "common.h" +#include "../qrinput.h" +#include "../qrencode_inner.h" +#include "../split.h" +#include "decoder.h" + +int encodeAndCheckBStream(int mqr, int version, QRecLevel level, QRencodeMode mode, char *data, char *correct) +{ + QRinput *input; + BitStream *bstream; + int ret; + + if(mqr) { + input = QRinput_newMQR(version, level); + } else { + input = QRinput_new2(version, level); + } + QRinput_append(input, mode, strlen(data), (unsigned char *)data); + bstream = QRinput_getBitStream(input); + ret = cmpBin(correct, bstream); + if(ret) { + printf("result : "); + printBstream(bstream); + printf("correct: %s\n", correct); + } + QRinput_free(input); + BitStream_free(bstream); + + return ret; +} + +int mergeAndCheckBStream(int mqr, QRencodeMode mode, char *data, char *correct) +{ + QRinput *input; + BitStream *bstream; + int ret; + + if(mqr) { + input = QRinput_newMQR(1, QR_ECLEVEL_L); + } else { + input = QRinput_new(); + } + QRinput_append(input, mode, strlen(data), (unsigned char *)data); + bstream = QRinput_mergeBitStream(input); + ret = cmpBin(correct, bstream); + + QRinput_free(input); + BitStream_free(bstream); + + return ret; +} + +void test_encodeKanji(void) +{ + char str[5]= {0x93, 0x5f,0xe4, 0xaa, 0x00}; + char *correct = "10000000001001101100111111101010101010"; + + testStart("Encoding kanji stream."); + testEnd(mergeAndCheckBStream(0, QR_MODE_KANJI, str, correct)); +} + +void test_encode8(void) +{ + char str[] = "AC-42"; + char correct[] = "0100000001010100000101000011001011010011010000110010"; + + testStart("Encoding 8bit stream."); + testEnd(mergeAndCheckBStream(0, QR_MODE_8, str, correct)); +} + +void test_encode8_versionup(void) +{ + QRinput *stream; + BitStream *bstream; + char *str; + int version; + + testStart("Encoding 8bit stream. (auto-version up test)"); + str = (char *)malloc(2900); + memset(str, 0xff, 2900); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_8, 2900, (unsigned char *)str); + bstream = QRinput_mergeBitStream(stream); + version = QRinput_getVersion(stream); + assert_equal(version, 40, "Version is %d (40 expected).\n", version); + testFinish(); + QRinput_free(stream); + BitStream_free(bstream); + free(str); +} + +void test_encodeAn(void) +{ + char *str = "AC-42"; + char correct[] = "00100000001010011100111011100111001000010"; + + testStart("Encoding alphabet-numeric stream."); + testEnd(mergeAndCheckBStream(0, QR_MODE_AN, str, correct)); +} + +void test_encodeAn2(void) +{ + QRinput *stream; + char str[] = "!,;$%"; + int ret; + + testStart("Encoding INVALID alphabet-numeric stream."); + stream = QRinput_new(); + ret = QRinput_append(stream, QR_MODE_AN, 5, (unsigned char *)str); + testEnd(!ret); + QRinput_free(stream); +} + +void test_encodeNumeric(void) +{ + char *str = "01234567"; + char correct[] = "00010000001000000000110001010110011000011"; + + testStart("Encoding numeric stream. (8 digits)"); + testEnd(mergeAndCheckBStream(0, QR_MODE_NUM, str, correct)); +} + +void test_encodeNumeric_versionup(void) +{ + QRinput *stream; + BitStream *bstream; + char *str; + int version; + + testStart("Encoding numeric stream. (auto-version up test)"); + str = (char *)malloc(1050); + memset(str, '1', 1050); + stream = QRinput_new2(0, QR_ECLEVEL_L); + QRinput_append(stream, QR_MODE_NUM, 1050, (unsigned char *)str); + bstream = QRinput_mergeBitStream(stream); + version = QRinput_getVersion(stream); + assert_equal(version, 14, "Version is %d (14 expected).", version); + testFinish(); + QRinput_free(stream); + BitStream_free(bstream); + free(str); +} + +void test_encodeNumericPadded(void) +{ + char *str = "01234567"; + char *correct; + char *correctHead = "000100000010000000001100010101100110000110000000"; + int i, ret; + + testStart("Encoding numeric stream. (8 digits)(padded)"); + correct = (char *)malloc(19 * 8 + 1); + correct[0] = '\0'; + strcat(correct, correctHead); + for(i=0; i<13; i++) { + strcat(correct, (i&1)?"00010001":"11101100"); + } + ret = encodeAndCheckBStream(0, 0, QR_ECLEVEL_L, QR_MODE_NUM, str, correct); + testEnd(ret); + + free(correct); +} + +void test_encodeNumericPadded2(void) +{ + char *str = "0123456"; + char *correct; + char *correctHead = "000100000001110000001100010101100101100000000000"; + int i, ret; + + testStart("Encoding numeric stream. (7 digits)(padded)"); + correct = (char *)malloc(19 * 8 + 1); + correct[0] = '\0'; + strcat(correct, correctHead); + for(i=0; i<13; i++) { + strcat(correct, (i&1)?"00010001":"11101100"); + } + ret = encodeAndCheckBStream(0, 0, QR_ECLEVEL_L, QR_MODE_NUM, str, correct); + testEnd(ret); + + free(correct); +} + +void test_padding(void) +{ + QRinput *input; + BitStream *bstream; + int i, size; + char data[] = "0123456789ABCDeFG"; + unsigned char c; + + testStart("Padding bit check. (less than 5 bits)"); + input = QRinput_new2(1, QR_ECLEVEL_L); + QRinput_append(input, QR_MODE_8, 17, (unsigned char *)data); + bstream = QRinput_getBitStream(input); + size = BitStream_size(bstream); + assert_equal(size, 152, "# of bit is incorrect (%d != 152).\n", size); + c = 0; + for(i=0; i<4; i++) { + c += bstream->data[size - i - 1]; + } + assert_zero(c, "Padding bits are not zero."); + testFinish(); + + QRinput_free(input); + BitStream_free(bstream); +} + +void test_padding2(void) +{ + QRinput *input; + BitStream *bstream; + int i, size, ret; + char data[] = "0123456789ABCDeF"; + char correct[153]; + unsigned char c; + + testStart("Padding bit check. (1 or 2 padding bytes)"); + + /* 16 byte data (4 bit terminator and 1 byte padding) */ + memset(correct, 0, 153); + memcpy(correct, "010000010000", 12); + for(size=0; size<16; size++) { + c = 0x80; + for(i=0; i<8; i++) { + correct[size * 8 + i + 12] = (data[size]&c)?'1':'0'; + c = c >> 1; + } + } + memcpy(correct + 140, "000011101100", 12); + + input = QRinput_new2(1, QR_ECLEVEL_L); + QRinput_append(input, QR_MODE_8, 16, (unsigned char *)data); + bstream = QRinput_getBitStream(input); + size = BitStream_size(bstream); + assert_equal(size, 152, "16byte: # of bit is incorrect (%d != 152).\n", size); + ret = ncmpBin(correct, bstream, 152); + assert_zero(ret, "Padding bits incorrect.\n"); + printBstream(bstream); + + QRinput_free(input); + BitStream_free(bstream); + + /* 15 byte data (4 bit terminator and 2 byte paddings) */ + + memcpy(correct, "010000001111", 12); + memcpy(correct + 132, "00001110110000010001", 20); + + input = QRinput_new2(1, QR_ECLEVEL_L); + QRinput_append(input, QR_MODE_8, 15, (unsigned char *)data); + bstream = QRinput_getBitStream(input); + size = BitStream_size(bstream); + assert_equal(size, 152, "15byte: # of bit is incorrect (%d != 152).\n", size); + ret = ncmpBin(correct, bstream, 152); + assert_zero(ret, "Padding bits incorrect.\n"); + printBstream(bstream); + + testFinish(); + + QRinput_free(input); + BitStream_free(bstream); +} + +void test_encodeNumeric2(void) +{ + char *str = "0123456789012345"; + char *correct = "00010000010000000000110001010110011010100110111000010100111010100101"; + + testStart("Encoding numeric stream. (16 digits)"); + testEnd(mergeAndCheckBStream(0, QR_MODE_NUM, str, correct)); +} + +void test_encodeNumeric3(void) +{ + char *str = "0123456"; + char *correct = "0001 0000000111 0000001100 0101011001 0110"; + + testStart("Encoding numeric stream. (7 digits)"); + testEnd(mergeAndCheckBStream(0, QR_MODE_NUM, str, correct)); +} + +void test_encodeTooLong(void) +{ + QRinput *stream; + unsigned char *data; + BitStream *bstream; + + data = (unsigned char *)malloc(4297); + memset(data, 'A', 4297); + + testStart("Encoding long string. (4297 bytes of alphanumeric)"); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_AN, 4297, data); + bstream = QRinput_mergeBitStream(stream); + testEndExp(bstream == NULL); + QRinput_free(stream); + if(bstream != NULL) { + BitStream_free(bstream); + } + free(data); +} + +void test_encodeAnNum(void) +{ + QRinput *input; + BitStream *bstream; + + testStart("Bit length check of alpha-numeric stream. (11 + 12)"); + input = QRinput_new(); + QRinput_append(input, QR_MODE_AN, 11, (unsigned char *)"ABCDEFGHIJK"); + QRinput_append(input, QR_MODE_NUM, 12, (unsigned char *)"123456789012"); + bstream = QRinput_mergeBitStream(input); + testEndExp(BitStream_size(bstream) == 128); + QRinput_free(input); + BitStream_free(bstream); + + testStart("Bit length check of alphabet stream. (23)"); + input = QRinput_new(); + QRinput_append(input, QR_MODE_AN, 23, (unsigned char *)"ABCDEFGHIJK123456789012"); + bstream = QRinput_mergeBitStream(input); + testEndExp(BitStream_size(bstream) == 140); + QRinput_free(input); + BitStream_free(bstream); +} + +void test_struct_listop(void) +{ + QRinput_Struct *s; + QRinput *inputs[5]; + QRinput_InputList *l; + int i, ret; + + testStart("QRinput_Struct list operation test."); + s = QRinput_Struct_new(); + QRinput_Struct_setParity(s, 10); + assert_nonnull(s, "QRinput_Struct_new() failed."); + assert_equal(s->parity, 10, "QRinput_Struct_setParity() failed."); + + for(i=0; i<5; i++) { + inputs[i] = QRinput_new(); + QRinput_append(inputs[i], QR_MODE_AN, 5, (unsigned char *)"ABCDE"); + ret = QRinput_Struct_appendInput(s, inputs[i]); + } + assert_equal(ret, 5, "QRinput_Struct_appendInput() returns wrong num?"); + assert_equal(s->size, 5, "QRiput_Struct.size counts wrong number."); + + l = s->head; + i = 0; + while(l != NULL) { + assert_equal(l->input, inputs[i], "QRinput_Struct input list order would be wrong?"); + l = l->next; + i++; + } + + QRinput_Struct_free(s); + testFinish(); +} + +void test_insertStructuredAppendHeader(void) +{ + QRinput *stream; + char correct[] = "0011000011111010010101000000000101000001"; + BitStream *bstream; + int ret; + + testStart("Insert a structured-append header"); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_8, 1, (unsigned char *)"A"); + ret = QRinput_insertStructuredAppendHeader(stream, 16, 1, 0xa5); + assert_zero(ret, "QRinput_insertStructuredAppendHeader() returns nonzero.\n"); + bstream = QRinput_mergeBitStream(stream); + assert_nonnull(bstream->data, "Bstream->data is null."); + assert_zero(cmpBin(correct, bstream), "bitstream is wrong."); + testFinish(); + + QRinput_free(stream); + BitStream_free(bstream); +} + +void test_insertStructuredAppendHeader_error(void) +{ + QRinput *stream; + int ret; + + testStart("Insert a structured-append header (errors expected)"); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_8, 1, (unsigned char *)"A"); + ret = QRinput_insertStructuredAppendHeader(stream, 17, 1, 0xa5); + assert_equal(-1, ret, "QRinput_insertStructuredAppendHeader() returns 0."); + assert_equal(EINVAL, errno, "errno is not set correctly (%d returned).", errno); + ret = QRinput_insertStructuredAppendHeader(stream, 16, 17, 0xa5); + assert_equal(-1, ret, "QRinput_insertStructuredAppendHeader() returns 0."); + assert_equal(EINVAL, errno, "errno is not set correctly (%d returned).", errno); + ret = QRinput_insertStructuredAppendHeader(stream, 16, 0, 0xa5); + assert_equal(-1, ret, "QRinput_insertStructuredAppendHeader() returns 0."); + assert_equal(EINVAL, errno, "errno is not set correctly (%d returned).", errno); + testFinish(); + + QRinput_free(stream); +} + +void test_struct_insertStructuredAppendHeaders(void) +{ + QRinput *input; + QRinput_Struct *s; + QRinput_InputList *p; + int i; + + testStart("Insert structured-append headers to a QRinput_Struct."); + s = QRinput_Struct_new(); + for(i=0; i<10; i++) { + input = QRinput_new(); + QRinput_append(input, QR_MODE_8, 1, (unsigned char *)"A"); + QRinput_Struct_appendInput(s, input); + } + QRinput_Struct_insertStructuredAppendHeaders(s); + p = s->head; + i = 1; + while(p != NULL) { + assert_equal(p->input->head->mode, QR_MODE_STRUCTURE, "a structured-append header is not inserted."); + assert_equal(p->input->head->data[0], 10, "size of the structured-header is wrong: #%d, %d should be %d\n", i, p->input->head->data[0], 10); + assert_equal(p->input->head->data[1], i, "index of the structured-header is wrong: #%d, %d should be %d\n", i, p->input->head->data[1], i); + assert_equal(p->input->head->data[2], 0, "parity of the structured-header is wrong: #%d\n", i); + p = p->next; + i++; + } + testFinish(); + QRinput_Struct_free(s); +} + +static int check_lengthOfCode(QRencodeMode mode, char *data, int size, int version) +{ + QRinput *input; + BitStream *b; + int bits; + int bytes; + + input = QRinput_new(); + QRinput_setVersion(input, version); + QRinput_append(input, mode, size, (unsigned char *)data); + b = QRinput_mergeBitStream(input); + bits = BitStream_size(b); + bytes = QRinput_lengthOfCode(mode, version, bits); + QRinput_free(input); + BitStream_free(b); + + return bytes; +} + +void test_lengthOfCode_num(void) +{ + int i, bytes; + char *data; + + data = (char *)malloc(8000); + for(i=0; i<8000; i++) { + data[i] = '0' + i % 10; + } + + testStart("Checking length of code (numeric)"); + for(i=1; i<=9; i++) { + bytes = check_lengthOfCode(QR_MODE_NUM, data, i, 1); + assert_equal(i, bytes, "lengthOfCode failed. (QR_MODE_NUM, version:1, size:%d)\n", i); + } + for(i=1023; i<=1025; i++) { + bytes = check_lengthOfCode(QR_MODE_NUM, data, i, 1); + assert_equal(1023, bytes, "lengthOfCode failed. (QR_MODE_NUM, version:1, size:%d)\n", i); + } + testFinish(); + free(data); +} + +void test_lengthOfCode_kanji(void) +{ + int i, bytes; + unsigned char str[4]= {0x93, 0x5f,0xe4, 0xaa}; + + testStart("Checking length of code (kanji)"); + for(i=2; i<=4; i+=2) { + bytes = check_lengthOfCode(QR_MODE_KANJI, (char *)str, i, 1); + assert_equal(i, bytes, "lengthOfCode failed. (QR_MODE_KANJI, version:1, size:%d)\n", i); + } + testFinish(); +} + +void test_struct_split_example(void) +{ + QRinput *input; + QRinput_Struct *s; + QRinput_InputList *e; + QRinput_List *l; + const char *str[4] = { "an example ", "of four Str", "uctured Appe", "nd symbols,"}; + int i; + BitStream *bstream; + + testStart("Testing the example of structured-append symbols"); + s = QRinput_Struct_new(); + for(i=0; i<4; i++) { + input = QRinput_new2(1, QR_ECLEVEL_M); + QRinput_append(input, QR_MODE_8, strlen(str[i]), (unsigned char *)str[i]); + QRinput_Struct_appendInput(s, input); + } + QRinput_Struct_insertStructuredAppendHeaders(s); + e = s->head; + i = 0; + while(e != NULL) { + bstream = QRinput_mergeBitStream(e->input); + BitStream_free(bstream); + l = e->input->head->next; + assert_equal(l->mode, QR_MODE_8, "#%d: wrong mode (%d).\n", i, l->mode); + assert_equal(e->input->level, QR_ECLEVEL_M, "#%d: wrong level (%d).\n", i, e->input->level); + + e = e->next; + i++; + } + testFinish(); + QRinput_Struct_free(s); +} + +void test_struct_split_tooLarge(void) +{ + QRinput *input; + QRinput_Struct *s; + char *str; + int errsv; + + testStart("Testing structured-append symbols. (too large data)"); + str = (char *)malloc(128); + memset(str, 'a', 128); + input = QRinput_new2(1, QR_ECLEVEL_H); + QRinput_append(input, QR_MODE_8, 128, (unsigned char *)str); + s = QRinput_splitQRinputToStruct(input); + errsv = errno; + assert_null(s, "returns non-null."); + assert_equal(errsv, ERANGE, "did not return ERANGE."); + testFinish(); + if(s != NULL) QRinput_Struct_free(s); + QRinput_free(input); + free(str); +} + +void test_struct_split_invalidVersion(void) +{ + QRinput *input; + QRinput_Struct *s; + char *str; + int errsv; + + testStart("Testing structured-append symbols. (invalid version 0)"); + str = (char *)malloc(128); + memset(str, 'a', 128); + input = QRinput_new2(0, QR_ECLEVEL_H); + QRinput_append(input, QR_MODE_8, 128, (unsigned char *)str); + s = QRinput_splitQRinputToStruct(input); + errsv = errno; + assert_null(s, "returns non-null."); + assert_equal(errsv, ERANGE, "did not return ERANGE."); + testFinish(); + if(s != NULL) QRinput_Struct_free(s); + QRinput_free(input); + free(str); +} + +void test_struct_singlestructure(void) +{ + QRinput *input; + QRinput_Struct *s; + char *str = "TEST"; + + testStart("Testing structured-append symbols. (single structure)"); + input = QRinput_new2(10, QR_ECLEVEL_H); + QRinput_append(input, QR_MODE_AN, strlen(str), (unsigned char *)str); + s = QRinput_splitQRinputToStruct(input); + assert_nonnull(s, "must return a code."); + assert_equal(s->size, 1, "size must be 1, but %d returned.", s->size); + if(s->size != 1) { + printQRinputStruct(s); + } + testFinish(); + if(s != NULL) QRinput_Struct_free(s); + QRinput_free(input); +} + +void test_splitentry(void) +{ + QRinput *i1, *i2; + QRinput_List *e; + const char *str = "abcdefghij"; + int size1, size2, i; + unsigned char *d1, *d2; + + testStart("Testing QRinput_splitEntry. (next == NULL)"); + i1 = QRinput_new(); + QRinput_append(i1, QR_MODE_8, strlen(str), (unsigned char *)str); + + i2 = QRinput_dup(i1); + e = i2->head; + + e = i2->head; + QRinput_splitEntry(e, 4); + + size1 = size2 = 0; + e = i1->head; + while(e != NULL) { + size1 += e->size; + e = e->next; + } + e = i2->head; + while(e != NULL) { + size2 += e->size; + e = e->next; + } + + d1 = (unsigned char *)malloc(size1); + e = i1->head; + i = 0; + while(e != NULL) { + memcpy(&d1[i], e->data, e->size); + i += e->size; + e = e->next; + } + d2 = (unsigned char *)malloc(size2); + e = i2->head; + i = 0; + while(e != NULL) { + memcpy(&d2[i], e->data, e->size); + i += e->size; + e = e->next; + } + + assert_equal(size1, size2, "sizes are different. (%d:%d)\n", size1, size2); + assert_equal(i2->head->size, 4, "split failed (first half)"); + assert_equal(i2->head->next->size, 6, "split failed(second half)"); + assert_zero(memcmp(d1, d2, size1), "strings are different."); + QRinput_free(i1); + QRinput_free(i2); + free(d1); + free(d2); + + testFinish(); +} + +void test_splitentry2(void) +{ + QRinput *i1, *i2; + QRinput_List *e; + const char *str = "abcdefghij"; + int size1, size2, i; + unsigned char *d1, *d2; + + testStart("Testing QRinput_splitEntry. (next != NULL)"); + i1 = QRinput_new(); + QRinput_append(i1, QR_MODE_8, strlen(str), (unsigned char *)str); + QRinput_append(i1, QR_MODE_8, strlen(str), (unsigned char *)str); + + i2 = QRinput_dup(i1); + e = i2->head; + + e = i2->head; + QRinput_splitEntry(e, 4); + + size1 = size2 = 0; + e = i1->head; + while(e != NULL) { + size1 += e->size; + e = e->next; + } + e = i2->head; + while(e != NULL) { + size2 += e->size; + e = e->next; + } + + d1 = (unsigned char *)malloc(size1); + e = i1->head; + i = 0; + while(e != NULL) { + memcpy(&d1[i], e->data, e->size); + i += e->size; + e = e->next; + } + d2 = (unsigned char *)malloc(size2); + e = i2->head; + i = 0; + while(e != NULL) { + memcpy(&d2[i], e->data, e->size); + i += e->size; + e = e->next; + } + + assert_equal(size1, size2, "sizes are different. (%d:%d)\n", size1, size2); + assert_equal(i2->head->size, 4, "split failed (first half)"); + assert_equal(i2->head->next->size, 6, "split failed(second half)"); + assert_zero(memcmp(d1, d2, size1), "strings are different."); + QRinput_free(i1); + QRinput_free(i2); + free(d1); + free(d2); + + testFinish(); +} + +void test_splitentry3(void) +{ + QRinput *input; + QRinput_Struct *s; + QRinput_List *e00, *e01, *e10, *e11; + QRinput_InputList *list; + const char *str = "abcdefghijklmno"; + + testStart("Testing QRinput_splitEntry. (does not split an entry)"); + /* version 1 symbol contains 152 bit (19 byte) data. + * 20 bits for a structured-append header, so 132 bits can be used. + * 15 bytes of 8-bit data is suitable for the symbol. + * (mode(4) + length(8) + data(120) == 132.) + */ + input = QRinput_new2(1, QR_ECLEVEL_L); + QRinput_append(input, QR_MODE_8, strlen(str), (unsigned char *)str); + QRinput_append(input, QR_MODE_8, strlen(str), (unsigned char *)str); + s = QRinput_splitQRinputToStruct(input); + list = s->head; + e00 = list->input->head; + e01 = e00->next; + list = list->next; + e10 = list->input->head; + e11 = e10->next; + + assert_equal(e00->mode, QR_MODE_STRUCTURE, "Structure header is missing?"); + assert_equal(e01->mode, QR_MODE_8, "no data?!"); + assert_null(e01->next, "Input list is not terminated!\n"); + assert_equal(e10->mode, QR_MODE_STRUCTURE, "Structure header is missing?"); + assert_equal(e11->mode, QR_MODE_8, "no data?!"); + assert_null(e11->next, "Input list is not terminated!\n"); + + QRinput_free(input); + QRinput_Struct_free(s); + testFinish(); +} + +void test_parity(void) +{ + QRinput *input; + QRinput_Struct *s; + const char *text = "an example of four Structured Append symbols,"; + const char *str[4] = { + "an example ", + "of four Str", + "uctured Appe", + "nd symbols,"}; + unsigned char p1, p2; + int i, len; + + testStart("Testing parity calc."); + s = QRinput_Struct_new(); + for(i=0; i<4; i++) { + input = QRinput_new2(1, QR_ECLEVEL_M); + QRinput_append(input, QR_MODE_8, strlen(str[i]), (unsigned char *)str[i]); + QRinput_Struct_appendInput(s, input); + } + QRinput_Struct_insertStructuredAppendHeaders(s); + p1 = s->parity; + + p2 = 0; + len = strlen(text); + for(i=0; i<len; i++) { + p2 ^= text[i]; + } + assert_equal(p1, p2, "Parity numbers didn't match. (%02x should be %02x).\n", p1, p2); + testFinish(); + QRinput_Struct_free(s); +} + +void test_parity2(void) +{ + QRinput *input; + QRinput_Struct *s; + const char *text = "an example of four Structured Append symbols,"; + unsigned char p1, p2; + int i, len; + + testStart("Testing parity calc.(split)"); + input = QRinput_new2(1, QR_ECLEVEL_L); + QRinput_append(input, QR_MODE_8, strlen(text), (unsigned char *)text); + s = QRinput_splitQRinputToStruct(input); + p1 = s->parity; + + p2 = 0; + len = strlen(text); + for(i=0; i<len; i++) { + p2 ^= text[i]; + } + assert_equal(p1, p2, "Parity numbers didn't match. (%02x should be %02x).\n", p1, p2); + testFinish(); + QRinput_free(input); + QRinput_Struct_free(s); +} + +void test_null_free(void) +{ + testStart("Testing free NULL pointers"); + assert_nothing(QRinput_free(NULL), "Check QRinput_free(NULL).\n"); + assert_nothing(QRinput_Struct_free(NULL), "Check QRinput_Struct_free(NULL).\n"); + testFinish(); +} + +void test_mqr_new(void) +{ + QRinput *input; + testStart("Testing QRinput_newMQR()."); + + input = QRinput_newMQR(0, QR_ECLEVEL_L); + assert_null(input, "Version 0 passed.\n"); + QRinput_free(input); + + input = QRinput_newMQR(5, QR_ECLEVEL_L); + assert_null(input, "Version 5 passed.\n"); + QRinput_free(input); + + input = QRinput_newMQR(1, QR_ECLEVEL_M); + assert_null(input, "Invalid ECLEVEL passed.\n"); + QRinput_free(input); + + input = QRinput_newMQR(1, QR_ECLEVEL_L); + assert_equal(input->version, 1, "QRinput.version was not as expected.\n"); + assert_equal(input->level, QR_ECLEVEL_L, "QRinput.version was not as expected.\n"); + QRinput_free(input); + + testFinish(); +} + +void test_mqr_setversion(void) +{ + QRinput *input; + int ret; + testStart("Testing QRinput_setVersion() for MQR."); + + input = QRinput_newMQR(1, QR_ECLEVEL_L); + ret = QRinput_setVersion(input, 2); + assert_exp((ret < 0), "QRinput_setVersion should be denied.\n"); + QRinput_free(input); + + testFinish(); +} + +void test_mqr_setlevel(void) +{ + QRinput *input; + int ret; + testStart("Testing QRinput_setErrorCorrectionLevel() for MQR."); + + input = QRinput_newMQR(1, QR_ECLEVEL_L); + ret = QRinput_setErrorCorrectionLevel(input, QR_ECLEVEL_M); + assert_exp((ret < 0), "QRinput_setErrorCorrectionLevel should be denied.\n"); + QRinput_free(input); + + testFinish(); +} + +void test_paddingMQR(void) +{ + char *dataM1[] = {"65", "513", "5139", "51365"}; + char *correctM1[] = {"01010000010000000000", + "01110000000010000000", + "10010000000011001000", + "10110000000011000001"}; + char *dataM2[] = {"513513", "51351365"}; + char *correctM2[] = {"0 0110 1000000001 1000000001 0000000", + "0 1000 1000000001 1000000001 1000001"}; + int i, ret; + + testStart("Padding bit check of MQR. (only 0 padding)"); + for(i=0; i<4; i++) { + ret = encodeAndCheckBStream(1, 1, QR_ECLEVEL_L, QR_MODE_NUM, dataM1[i], correctM1[i]); + assert_zero(ret, "Number %s incorrectly encoded.\n", dataM1[i]); + } + for(i=0; i<2; i++) { + ret = encodeAndCheckBStream(1, 2, QR_ECLEVEL_M, QR_MODE_NUM, dataM2[i], correctM2[i]); + assert_zero(ret, "Number %s incorrectly encoded.\n", dataM2[i]); + } + testFinish(); +} + +void test_padding2MQR(void) +{ + char *data[] = {"9", "513513", "513", "513"}; + int ver[] = {1, 2, 2, 3}; + char *correct[] = {"00110010 00000000 0000", + "0 0110 1000000001 1000000001 0000000 11101100", + "0 0011 1000000001 000000000 11101100 00010001", + "00 00011 1000000001 0000000 11101100 00010001 11101100 00010001 11101100 00010001 11101100 0000" + }; + int i, ret; + + testStart("Padding bit check. (1 or 2 padding bytes)"); + + for(i=0; i<4; i++) { + ret = encodeAndCheckBStream(1, ver[i], QR_ECLEVEL_L, QR_MODE_NUM, data[i], correct[i]); + assert_zero(ret, "Number %s incorrectly encoded.\n", data[i]); + } + testFinish(); +} + +void test_textMQR(void) +{ + int version = 3; + QRecLevel level = QR_ECLEVEL_M; + char *str = "MICROQR"; + char *correct = {"01 0111 01111110000 01000110111 10001010010 011011 0000000 0000 11101100 0000"}; + int ret; + + testStart("Text encoding (Micro QR)"); + ret = encodeAndCheckBStream(1, version, level, QR_MODE_AN, str, correct); + assert_zero(ret, "AlphaNumeric string '%s' incorrectly encoded.\n", str); + testFinish(); +} + +void test_ECIinvalid(void) +{ + QRinput *stream; + int ret; + + testStart("Appending invalid ECI header"); + stream = QRinput_new(); + ret = QRinput_appendECIheader(stream, 999999); + assert_zero(ret, "Valid ECI header rejected."); + ret = QRinput_appendECIheader(stream, 1000000); + assert_nonzero(ret, "Invalid ECI header accepted."); + QRinput_free(stream); + testFinish(); +} + +void test_encodeECI(void) +{ + QRinput *input; + BitStream *bstream; + unsigned char str[] = {0xa1, 0xa2, 0xa3, 0xa4, 0xa5}; + char *correct = "0111 00001001 0100 00000101 10100001 10100010 10100011 10100100 10100101"; + int ret; + + testStart("Encoding characters with ECI header."); + input = QRinput_new(); + ret = QRinput_appendECIheader(input, 9); + assert_zero(ret, "Valid ECI header rejected.\n"); + + ret = QRinput_append(input, QR_MODE_8, 5, str); + assert_zero(ret, "Failed to append characters.\n"); + bstream = QRinput_mergeBitStream(input); + assert_nonnull(bstream, "Failed to merge.\n"); + if(bstream != NULL) { + ret = ncmpBin(correct, bstream, 64); + assert_zero(ret, "Encodation of ECI header was invalid.\n"); + BitStream_free(bstream); + } + QRinput_free(input); + testFinish(); +} + +int main(void) +{ + test_encodeNumeric(); + test_encodeNumeric2(); + test_encodeNumeric3(); + test_encodeNumeric_versionup(); + test_encode8(); + test_encode8_versionup(); + test_encodeTooLong(); + test_encodeAn(); + test_encodeAn2(); + test_encodeKanji(); + test_encodeNumericPadded(); + test_encodeNumericPadded2(); + test_encodeAnNum(); + test_padding(); + test_padding2(); + test_struct_listop(); + test_insertStructuredAppendHeader(); + test_insertStructuredAppendHeader_error(); + test_struct_insertStructuredAppendHeaders(); + test_lengthOfCode_num(); + test_splitentry(); + test_splitentry2(); + test_splitentry3(); + test_struct_split_example(); + test_struct_split_tooLarge(); + test_struct_split_invalidVersion(); + test_struct_singlestructure(); + test_parity(); + test_parity2(); + test_null_free(); + + test_mqr_new(); + test_mqr_setversion(); + test_mqr_setlevel(); + test_paddingMQR(); + test_padding2MQR(); + test_textMQR(); + + test_ECIinvalid(); + test_encodeECI(); + + report(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_qrspec.c b/contrib/qrencode-win32/tests/test_qrspec.c new file mode 100644 index 0000000..5993d5e --- /dev/null +++ b/contrib/qrencode-win32/tests/test_qrspec.c @@ -0,0 +1,328 @@ +#include <stdio.h> +#include <string.h> +#include "common.h" +#include "../qrspec.h" +#include "../qrencode_inner.h" +#include "decoder.h" + +void print_eccTable(void) +{ + int i, j; + int ecc; + int data; + int spec[5]; + + for(i=1; i<=QRSPEC_VERSION_MAX; i++) { + printf("Version %2d\n", i); + for(j=0; j<4; j++) { + QRspec_getEccSpec(i, (QRecLevel)j, spec); + data = QRspec_rsBlockNum1(spec) * QRspec_rsDataCodes1(spec) + + QRspec_rsBlockNum2(spec) * QRspec_rsDataCodes2(spec); + ecc = QRspec_rsBlockNum1(spec) * QRspec_rsEccCodes1(spec) + + QRspec_rsBlockNum2(spec) * QRspec_rsEccCodes2(spec); + printf("%3d\t", data); + printf("%3d\t", ecc); + printf("%2d\t", QRspec_rsBlockNum1(spec)); + printf("(%3d, %3d, %3d)\n", + QRspec_rsDataCodes1(spec) + QRspec_rsEccCodes1(spec), + QRspec_rsDataCodes1(spec), + QRspec_rsEccCodes1(spec)); + if(QRspec_rsBlockNum2(spec) > 0) { + printf("\t%2d\t", QRspec_rsBlockNum2(spec)); + printf("(%3d, %3d, %3d)\n", + QRspec_rsDataCodes2(spec) + QRspec_rsEccCodes2(spec), + QRspec_rsDataCodes2(spec), + QRspec_rsEccCodes2(spec)); + } + } + } +} + +void test_eccTable(void) +{ + int i, j; + int ecc; + int data; + int err = 0; + int spec[5]; + + testStart("Checking ECC table."); + for(i=1; i<=QRSPEC_VERSION_MAX; i++) { + for(j=0; j<4; j++) { + QRspec_getEccSpec(i, (QRecLevel)j, spec); + data = QRspec_rsBlockNum1(spec) * QRspec_rsDataCodes1(spec) + + QRspec_rsBlockNum2(spec) * QRspec_rsDataCodes2(spec); + ecc = QRspec_rsBlockNum1(spec) * QRspec_rsEccCodes1(spec) + + QRspec_rsBlockNum2(spec) * QRspec_rsEccCodes2(spec); + if(data + ecc != QRspec_getDataLength(i, (QRecLevel)j) + QRspec_getECCLength(i, (QRecLevel)j)) { + printf("Error in version %d, level %d: invalid size\n", i, j); + printf("%d %d %d %d %d %d\n", spec[0], spec[1], spec[2], spec[3], spec[4], spec[2]); + err++; + } + if(ecc != QRspec_getECCLength(i, (QRecLevel)j)) { + printf("Error in version %d, level %d: invalid data\n", i, j); + printf("%d %d %d %d %d %d\n", spec[0], spec[1], spec[2], spec[3], spec[4], spec[2]); + err++; + } + } + } + testEnd(err); +} + +void test_eccTable2(void) +{ + int i; + int spec[5]; + + const int correct[7][6] = { + { 8, 1, 0, 2, 60, 38}, + { 8, 1, 1, 2, 61, 39}, + {24, 2, 0, 11, 54, 24}, + {24, 2, 1, 16, 55, 25}, + {32, 0, 0, 17, 145, 115}, + {40, 3, 0, 20, 45, 15}, + {40, 3, 1, 61, 46, 16}, + }; + + testStart("Checking ECC table(2)"); + for(i=0; i<7; i++) { + QRspec_getEccSpec(correct[i][0], (QRecLevel)correct[i][1], spec); + if(correct[i][2] == 0) { + assert_equal(QRspec_rsBlockNum1(spec), correct[i][3], + "Error in version %d, level %d. rsBlockNum1 was %d, expected %d.\n", + correct[i][0], correct[i][1], + QRspec_rsBlockNum1(spec), correct[i][3]); + assert_equal(QRspec_rsDataCodes1(spec) + QRspec_rsEccCodes1(spec), correct[i][4], + "Error in version %d, level %d. rsDataCodes1 + rsEccCodes1 was %d, expected %d.\n", + correct[i][0], correct[i][1], + QRspec_rsDataCodes1(spec) + QRspec_rsEccCodes1(spec), correct[i][4]); + assert_equal(QRspec_rsDataCodes1(spec), correct[i][5], + "Error in version %d, level %d. rsDataCodes1 was %d, expected %d.\n", + correct[i][0], correct[i][1], + QRspec_rsDataCodes1(spec), correct[i][5]); + } else { + assert_equal(QRspec_rsBlockNum2(spec), correct[i][3], + "Error in version %d, level %d. rsBlockNum2 was %d, expected %d.\n", + correct[i][0], correct[i][1], + QRspec_rsBlockNum2(spec), correct[i][3]); + assert_equal(QRspec_rsDataCodes2(spec) + QRspec_rsEccCodes2(spec), correct[i][4], + "Error in version %d, level %d. rsDataCodes2 + rsEccCodes2 was %d, expected %d.\n", + correct[i][0], correct[i][1], + QRspec_rsDataCodes2(spec) + QRspec_rsEccCodes2(spec), correct[i][4]); + assert_equal(QRspec_rsDataCodes2(spec), correct[i][5], + "Error in version %d, level %d. rsDataCodes2 was %d, expected %d.\n", + correct[i][0], correct[i][1], + QRspec_rsDataCodes2(spec), correct[i][5]); + } + } + testFinish(); +} + +void test_newframe(void) +{ + unsigned char buf[QRSPEC_WIDTH_MAX * QRSPEC_WIDTH_MAX]; + int i, width; + size_t len; + FILE *fp; + unsigned char *frame; + QRcode *qrcode; + unsigned int version; + + testStart("Checking newly created frame."); + fp = fopen("frame", "rb"); + if(fp == NULL) { + perror("Failed to open \"frame\":"); + abort(); + } + for(i=1; i<=QRSPEC_VERSION_MAX; i++) { + frame = QRspec_newFrame(i); + width = QRspec_getWidth(i); + len = fread(buf, 1, width * width, fp); + if((int)len != width * width) { + perror("Failed to read the pattern file:"); + abort(); + } + assert_zero(memcmp(frame, buf, len), "frame pattern mismatch (version %d)\n", i); + qrcode = QRcode_new(i, width, frame); + version = QRcode_decodeVersion(qrcode); + assert_equal(version, i, "Decoded version number is wrong: %d, expected %d.\n", version, i); + QRcode_free(qrcode); + } + + testFinish(); + fclose(fp); +} + +void test_newframe_invalid(void) +{ + unsigned char *frame; + + testStart("Checking QRspec_newFrame with invalid version."); + frame = QRspec_newFrame(0); + assert_null(frame, "QRspec_newFrame(0) returns non-NULL."); + frame = QRspec_newFrame(QRSPEC_VERSION_MAX+1); + assert_null(frame, "QRspec_newFrame(0) returns non-NULL."); + testFinish(); +} + +#if 0 +/* This test is used to check positions of alignment pattern. See Appendix E + * (pp.71) of JIS X0510:2004 and compare to the output. Before comment out + * this test, change the value of the pattern marker's center dot from 0xa1 + * to 0xb1 (QRspec_putAlignmentMarker() : finder). + */ +void test_alignment(void) +{ + unsigned char *frame; + int i, x, y, width, c; + + testStart("Checking alignment pattern."); + for(i=2; i<=QRSPEC_VERSION_MAX; i++) { + printf("%2d", i); + frame = QRspec_newFrame(i); + width = QRspec_getWidth(i); + c = 0; + for(x=0; x<width * width; x++) { + if(frame[x] == 0xb1) { + c++; + } + } + printf("|%2d| 6", c); + y = width - 7; + for(x=0; x < width; x++) { + if(frame[y * width + x] == 0xb1) { + printf(", %3d", x); + } + } + printf("\n"); + free(frame); + } + testFinish(); +} +#endif + +void test_verpat(void) +{ + int version; + unsigned int pattern; + int err = 0; + unsigned int data; + unsigned int code; + int i, c; + unsigned int mask; + + for(version=7; version <= QRSPEC_VERSION_MAX; version++) { + pattern = QRspec_getVersionPattern(version); + if((pattern >> 12) != (unsigned int)version) { + printf("Error in version %d.\n", version); + err++; + continue; + } + mask = 0x40; + for(i=0; mask != 0; i++) { + if(version & mask) break; + mask = mask >> 1; + } + c = 6 - i; + data = version << 12; + code = 0x1f25 << c; + mask = 0x40000 >> (6 - c); + for(i=0; i<=c; i++) { + if(mask & data) { + data ^= code; + } + code = code >> 1; + mask = mask >> 1; + } + data = (version << 12) | (data & 0xfff); + if(data != pattern) { + printf("Error in version %d\n", version); + err++; + } + } +} + +void print_newFrame(void) +{ + int width; + int x, y; + unsigned char *frame; + + frame = QRspec_newFrame(7); + width = QRspec_getWidth(7); + for(y=0; y<width; y++) { + for(x=0; x<width; x++) { + printf("%02x ", frame[y * width + x]); + } + printf("\n"); + } + free(frame); +} + +/* See Table 22 (pp.45) and Appendix C (pp. 65) of JIS X0510:2004 */ +static unsigned int levelIndicator[4] = {1, 0, 3, 2}; +static unsigned int calcFormatInfo(int mask, QRecLevel level) +{ + unsigned int data, ecc, b, code; + int i, c; + + data = (levelIndicator[level] << 13) | (mask << 10); + ecc = data; + b = 1 << 14; + for(i=0; b != 0; i++) { + if(ecc & b) break; + b = b >> 1; + } + c = 4 - i; + code = 0x537 << c ; //10100110111 + b = 1 << (10 + c); + for(i=0; i<=c; i++) { + if(b & ecc) { + ecc ^= code; + } + code = code >> 1; + b = b >> 1; + } + + return (data | ecc) ^ 0x5412; +} + +void test_format(void) +{ + unsigned int format; + int i, j; + int err = 0; + + testStart("Format info test"); + for(i=0; i<4; i++) { + for(j=0; j<8; j++) { + format = calcFormatInfo(j, (QRecLevel)i); +// printf("0x%04x, ", format); + if(format != QRspec_getFormatInfo(j, (QRecLevel)i)) { + printf("Level %d, mask %x\n", i, j); + err++; + } + } +// printf("\n"); + } + testEnd(err); +} + +int main(void) +{ + test_eccTable(); + test_eccTable2(); + //print_eccTable(); + test_newframe(); + test_newframe_invalid(); + //test_alignment(); + test_verpat(); + //print_newFrame(); + test_format(); + + QRspec_clearCache(); + + report(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_rs.c b/contrib/qrencode-win32/tests/test_rs.c new file mode 100644 index 0000000..7ea2695 --- /dev/null +++ b/contrib/qrencode-win32/tests/test_rs.c @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <string.h> +#include "common.h" +#include "../qrencode_inner.h" +#include "../qrinput.h" +#include "../rscode.h" + +/* See pp. 73 of JIS X0510:2004 */ +void test_rscode1(void) +{ + QRinput *stream; + QRRawCode *code; + static const char str[9] = "01234567"; + static unsigned char correct[26] = { + 0x10, 0x20, 0x0c, 0x56, 0x61, 0x80, 0xec, 0x11, 0xec, 0x11, 0xec, 0x11, + 0xec, 0x11, 0xec, 0x11, 0xa5, 0x24, 0xd4, 0xc1, 0xed, 0x36, 0xc7, 0x87, + 0x2c, 0x55}; + + testStart("RS ecc test"); + stream = QRinput_new(); + QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)str); + QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_M); + code = QRraw_new(stream); + + testEnd(memcmp(correct + 16, code->rsblock[0].ecc, 10)); + QRinput_free(stream); + QRraw_free(code); +} + +int main(void) +{ + test_rscode1(); + + free_rs_cache(); + report(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/test_split.c b/contrib/qrencode-win32/tests/test_split.c new file mode 100644 index 0000000..1a43760 --- /dev/null +++ b/contrib/qrencode-win32/tests/test_split.c @@ -0,0 +1,550 @@ +#include <stdio.h> +#include <string.h> +#include <stdarg.h> +#include "common.h" +#include "../qrspec.h" +#include "../qrinput.h" +#include "../mask.h" +#include "../split.h" +#include "../bitstream.h" + +static int inputTest(QRinput_List *list, const char *fmt, ...) +{ + va_list ap; + int size; + QRencodeMode mode; + int i, err = 0; + + va_start(ap, fmt); + i = 1; + while(*fmt) { + if(list == NULL) { + err = 1; + break; + } + size = va_arg(ap, int); + if(list->size != size) { + err = 1; + break; + } + + switch(*fmt++) { + case 'n': + mode = QR_MODE_NUM; + break; + case 'a': + mode = QR_MODE_AN; + break; + case 'k': + mode = QR_MODE_KANJI; + break; + case '8': + mode = QR_MODE_8; + break; + default: + return -1; + break; + } + if(list->mode != mode) { + err = 1; + break; + } + list = list->next; + i++; + } + va_end(ap); + if(list != NULL) { + err = 1; + } + if(err) { + return -i; + } + return 0; +} + +int inputSize(QRinput *input) +{ + BitStream *bstream; + int size; + + bstream = QRinput_mergeBitStream(input); + size = BitStream_size(bstream); + BitStream_free(bstream); + + return size; +} + +void test_split1(void) +{ + QRinput *input; + BitStream *stream; + + testStart("Split test: null string"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("", input, QR_MODE_8, 0); + stream = QRinput_mergeBitStream(input); + testEndExp(BitStream_size(stream) == 0); + QRinput_free(input); + BitStream_free(stream); +} + +void test_split2(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: single typed strings (num)"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("0123", input, QR_MODE_8, 0); + list = input->head; + if(inputTest(list, "n", 4)) { + err++; + } + testEnd(err); + QRinput_free(input); + + err = 0; + testStart("Split test: single typed strings (num2)"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("12345678901234567890", input, QR_MODE_KANJI, 0); + list = input->head; + if(inputTest(list, "n", 20)) { + err++; + } + testEnd(err); + QRinput_free(input); +} + +void test_split3(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: single typed strings (an)"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("ab:-E", input, QR_MODE_8, 0); + list = input->head; + if(inputTest(list, "a", 5)) { + printQRinputInfo(input); + err++; + } + testEnd(err); + QRinput_free(input); + + err = 0; + testStart("Split test: num + an"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("0123abcde", input, QR_MODE_KANJI, 0); + list = input->head; + if(inputTest(list, "a", 9)) { + err++; + } + testEnd(err); + QRinput_free(input); + + err = 0; + testStart("Split test: an + num + an"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("Ab345fg", input, QR_MODE_KANJI, 0); + list = input->head; + if(inputTest(list, "a", 7)) { + err++; + } + testEnd(err); + QRinput_free(input); +} + +void test_split4(void) +{ + QRinput *input; + QRinput *i1, *i2; + int s1, s2, size; +#define CHUNKA "ABCDEFGHIJK" +#define CHUNKB "123456" +#define CHUNKC "1234567" + + testStart("Split test: an and num entries"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput(CHUNKA/**/CHUNKB, input, QR_MODE_8, 0); + i1 = QRinput_new(); + QRinput_append(i1, QR_MODE_AN, 17, (unsigned char *)CHUNKA/**/CHUNKB); + i2 = QRinput_new(); + QRinput_append(i2, QR_MODE_AN, 11, (unsigned char *)CHUNKA); + QRinput_append(i2, QR_MODE_NUM, 6, (unsigned char *)CHUNKB); + + size = inputSize(input); + s1 = inputSize(i1); + s2 = inputSize(i2); + testEndExp(size == ((s1 < s2)?s1:s2)); + QRinput_free(input); + QRinput_free(i1); + QRinput_free(i2); + + testStart("Split test: num and an entries"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput(CHUNKB/**/CHUNKA, input, QR_MODE_8, 0); + i1 = QRinput_new(); + QRinput_append(i1, QR_MODE_AN, 17, (unsigned char *)CHUNKB/**/CHUNKA); + i2 = QRinput_new(); + QRinput_append(i2, QR_MODE_NUM, 6, (unsigned char *)CHUNKB); + QRinput_append(i2, QR_MODE_AN, 11, (unsigned char *)CHUNKA); + + size = inputSize(input); + s1 = inputSize(i1); + s2 = inputSize(i2); + testEndExp(size == ((s1 < s2)?s1:s2)); + QRinput_free(input); + QRinput_free(i1); + QRinput_free(i2); + + testStart("Split test: num and an entries (should be splitted)"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput(CHUNKC/**/CHUNKA, input, QR_MODE_8, 0); + i1 = QRinput_new(); + QRinput_append(i1, QR_MODE_AN, 18, (unsigned char *)CHUNKC/**/CHUNKA); + i2 = QRinput_new(); + QRinput_append(i2, QR_MODE_NUM, 7, (unsigned char *)CHUNKC); + QRinput_append(i2, QR_MODE_AN, 11, (unsigned char *)CHUNKA); + + size = inputSize(input); + s1 = inputSize(i1); + s2 = inputSize(i2); + testEndExp(size == ((s1 < s2)?s1:s2)); + QRinput_free(input); + QRinput_free(i1); + QRinput_free(i2); +} + +void test_split5(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: bit, an, bit, num"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("\x82\xd9""abcdeabcdea\x82\xb0""123456", input, QR_MODE_8, 0); + list = input->head; + if(inputTest(list, "8a8n", 2, 11, 2, 6)) { + err++; + } + testEnd(err); + QRinput_free(input); +} + +void test_split6(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: kanji, an, kanji, num"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("\x82\xd9""abcdeabcdea\x82\xb0""123456", input, QR_MODE_KANJI, 0); + list = input->head; + if(inputTest(list, "kakn", 2, 11, 2, 6)) { + printQRinputInfo(input); + err++; + } + testEnd(err); + QRinput_free(input); +} + +void test_split7(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: an and num as bits"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("\x82\xd9""abcde\x82\xb0""12345", input, QR_MODE_8, 0); + list = input->head; + if(inputTest(list, "8n", 9, 5)) { + err++; + } + testEnd(err); + QRinput_free(input); +} + +void test_split8(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: terminated with a half of kanji code"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("\x82\xd9""abcdefgh\x82", input, QR_MODE_KANJI, 0); + list = input->head; + if(inputTest(list, "ka8", 2, 8, 1)) { + err++; + } + testEnd(err); + QRinput_free(input); +} + +void test_split3c(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: single typed strings (an, case-sensitive)"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("ab:-E", input, QR_MODE_8, 1); + list = input->head; + if(inputTest(list, "8", 5)) { + err++; + } + testEnd(err); + QRinput_free(input); + + err = 0; + testStart("Split test: num + an"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("0123abcde", input, QR_MODE_KANJI, 1); + list = input->head; + if(inputTest(list, "n8", 4, 5)) { + err++; + } + testEnd(err); + QRinput_free(input); + + err = 0; + testStart("Split test: an + num + an"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("Ab345fg", input, QR_MODE_KANJI, 1); + list = input->head; + if(inputTest(list, "8", 7)) { + printQRinputInfo(input); + err++; + } + testEnd(err); + QRinput_free(input); +} + +void test_toupper(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: check dupAndToUpper (lower->upper)"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("abcde", input, QR_MODE_8, 0); + list = input->head; + if(inputTest(list, "a", 5)) { + err++; + } + if(strncmp((char *)list->data, "ABCDE", list->size)) { + err++; + } + testEnd(err); + QRinput_free(input); + + err = 0; + testStart("Split test: check dupAndToUpper (kanji)"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("\x83n\x83q\x83t\x83w\x83z", input, QR_MODE_KANJI, 0); + list = input->head; + if(inputTest(list, "k", 10)) { + printQRinputInfo(input); + err++; + } + if(strncmp((char *)list->data, "\x83n\x83q\x83t\x83w\x83z", list->size)) { + err++; + } + testEnd(err); + QRinput_free(input); + + err = 0; + testStart("Split test: check dupAndToUpper (8bit)"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("\x83n\x83q\x83t\x83w\x83z", input, QR_MODE_8, 0); + list = input->head; + if(inputTest(list, "8", 10)) { + printQRinputInfo(input); + err++; + } + if(strncmp((char *)list->data, "\x83N\x83Q\x83T\x83W\x83Z", list->size)) { + err++; + } + testEnd(err); + QRinput_free(input); +} + +void test_splitNum8(void) +{ + QRinput *input; + QRinput_List *list; + int err = 0; + + testStart("Split test: num and 8bit to 8bit"); + input = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput("1abcdefg", input, QR_MODE_8, 1); + list = input->head; + if(inputTest(list, "8", 8)) { + err++; + printQRinputInfo(input); + } + testEnd(err); + QRinput_free(input); +} + +void test_splitAnNAn(void) +{ + QRinput *input1, *input2, *input3; + int s1, s2, s3; + char *strall = "326A80A9C5004C0875571F8B71C311F2F86"; + char *str1 = "326A80A9C5004C"; + char *str2 = "0875571"; + char *str3 = "F8B71C311F2F86"; + + testStart("Split test: An-N-An switching cost test"); + input1 = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput(strall, input1, QR_MODE_8, 0); + + input2 = QRinput_new(); + QRinput_append(input2, QR_MODE_AN, 35, (unsigned char *)strall); + + input3 = QRinput_new(); + QRinput_append(input3, QR_MODE_AN, 14, (unsigned char *)str1); + QRinput_append(input3, QR_MODE_NUM, 7, (unsigned char *)str2); + QRinput_append(input3, QR_MODE_AN, 14, (unsigned char *)str3); + + s1 = inputSize(input1); + s2 = inputSize(input2); + s3 = inputSize(input3); + + assert_equal(s1, s2, "Incorrect split"); + assert_exp(s2 < s3, "Incorrect estimation"); + testFinish(); + QRinput_free(input1); + QRinput_free(input2); + QRinput_free(input3); +} + +void test_splitAn8An(void) +{ + QRinput *input1, *input2, *input3; + int s1, s2, s3; + char *strall = "ABCDabcdefABCD"; + char *str1 = "ABCD"; + char *str2 = "abcdef"; + char *str3 = "ABCD"; + + testStart("Split test: An-8-An switching cost test"); + input1 = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput(strall, input1, QR_MODE_8, 1); + + input2 = QRinput_new(); + QRinput_append(input2, QR_MODE_8, 14, (unsigned char *)strall); + + input3 = QRinput_new(); + QRinput_append(input3, QR_MODE_AN, 4, (unsigned char *)str1); + QRinput_append(input3, QR_MODE_8, 6, (unsigned char *)str2); + QRinput_append(input3, QR_MODE_AN, 4, (unsigned char *)str3); + + s1 = inputSize(input1); + s2 = inputSize(input2); + s3 = inputSize(input3); + + assert_equal(s1, s2, "Incorrect split"); + assert_exp(s2 < s3, "Incorrect estimation"); + testFinish(); + QRinput_free(input1); + QRinput_free(input2); + QRinput_free(input3); +} + +void test_split8An8(void) +{ + QRinput *input1, *input2, *input3; + int s1, s2, s3; + char *strall = "abcABCDEFGHabc"; + char *str1 = "abc"; + char *str2 = "ABCDEFGH"; + char *str3 = "abc"; + + testStart("Split test: 8-An-8 switching cost test"); + input1 = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput(strall, input1, QR_MODE_8, 1); + + input2 = QRinput_new(); + QRinput_append(input2, QR_MODE_8, 14, (unsigned char *)strall); + + input3 = QRinput_new(); + QRinput_append(input3, QR_MODE_8, 3, (unsigned char *)str1); + QRinput_append(input3, QR_MODE_AN, 8, (unsigned char *)str2); + QRinput_append(input3, QR_MODE_8, 3, (unsigned char *)str3); + + s1 = inputSize(input1); + s2 = inputSize(input2); + s3 = inputSize(input3); + + assert_equal(s1, s2, "Incorrect split"); + assert_exp(s2 < s3, "Incorrect estimation"); + testFinish(); + QRinput_free(input1); + QRinput_free(input2); + QRinput_free(input3); +} + +void test_split8N8(void) +{ + QRinput *input1, *input2, *input3; + int s1, s2, s3; + char *strall = "abc1234abc"; + char *str1 = "abc"; + char *str2 = "1234"; + char *str3 = "abc"; + + testStart("Split test: 8-N-8 switching cost test"); + input1 = QRinput_new2(0, QR_ECLEVEL_L); + Split_splitStringToQRinput(strall, input1, QR_MODE_8, 1); + + input2 = QRinput_new(); + QRinput_append(input2, QR_MODE_8, 10, (unsigned char *)strall); + + input3 = QRinput_new(); + QRinput_append(input3, QR_MODE_8, 3, (unsigned char *)str1); + QRinput_append(input3, QR_MODE_NUM, 4, (unsigned char *)str2); + QRinput_append(input3, QR_MODE_8, 3, (unsigned char *)str3); + + s1 = inputSize(input1); + s2 = inputSize(input2); + s3 = inputSize(input3); + + assert_equal(s1, s2, "Incorrect split"); + assert_exp(s2 < s3, "Incorrect estimation"); + testFinish(); + QRinput_free(input1); + QRinput_free(input2); + QRinput_free(input3); +} + +int main(void) +{ + test_split1(); + test_split2(); + test_split3(); + test_split4(); + test_split5(); + test_split6(); + test_split7(); + test_split8(); + test_split3c(); + test_toupper(); + test_splitNum8(); + test_splitAnNAn(); + test_splitAn8An(); + test_split8An8(); + test_split8N8(); + + report(); + + return 0; +} diff --git a/contrib/qrencode-win32/tests/view_qrcode.c b/contrib/qrencode-win32/tests/view_qrcode.c new file mode 100644 index 0000000..fd7e9a9 --- /dev/null +++ b/contrib/qrencode-win32/tests/view_qrcode.c @@ -0,0 +1,524 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <SDL.h> +#include <getopt.h> +#include <errno.h> +#include "../config.h" +#include "../qrspec.h" +#include "../qrinput.h" +#include "../split.h" +#include "../qrencode_inner.h" + +static SDL_Surface *screen = NULL; +static int casesensitive = 1; +static int eightbit = 0; +static int version = 1; +static int size = 4; +static int margin = 4; +static int structured = 0; +static int micro = 0; +static QRecLevel level = QR_ECLEVEL_L; +static QRencodeMode hint = QR_MODE_8; + +static char **textv; +static int textc; + +static const struct option options[] = { + {"help" , no_argument , NULL, 'h'}, + {"level" , required_argument, NULL, 'l'}, + {"size" , required_argument, NULL, 's'}, + {"symversion" , required_argument, NULL, 'v'}, + {"margin" , required_argument, NULL, 'm'}, + {"structured" , no_argument , NULL, 'S'}, + {"kanji" , no_argument , NULL, 'k'}, + {"casesensitive", no_argument , NULL, 'c'}, + {"ignorecase" , no_argument , NULL, 'i'}, + {"8bit" , no_argument , NULL, '8'}, + {"micro" , no_argument , NULL, 'M'}, + {"version" , no_argument , NULL, 'V'}, + {NULL, 0, NULL, 0} +}; + +static char *optstring = "hl:s:v:m:Skci8MV"; + +static char levelChar[4] = {'L', 'M', 'Q', 'H'}; +static void usage(int help, int longopt) +{ + fprintf(stderr, +"view_qrcode version %s\n" +"Copyright (C) 2008, 2009, 2010 Kentaro Fukuchi\n", VERSION); + if(help) { + if(longopt) { + fprintf(stderr, +"Usage: view_qrcode [OPTION]... [STRING]\n" +"Encode input data in a QR Code and display.\n\n" +" -h, --help display the help message. -h displays only the help of short\n" +" options.\n\n" +" -s NUMBER, --size=NUMBER\n" +" specify module size in dots (pixels). (default=3)\n\n" +" -l {LMQH}, --level={LMQH}\n" +" specify error correction level from L (lowest) to H (highest).\n" +" (default=L)\n\n" +" -v NUMBER, --symversion=NUMBER\n" +" specify the version of the symbol. (default=auto)\n\n" +" -m NUMBER, --margin=NUMBER\n" +" specify the width of the margins. (default=4)\n\n" +" -S, --structured\n" +" make structured symbols. Version must be specified.\n\n" +" -k, --kanji assume that the input text contains kanji (shift-jis).\n\n" +" -c, --casesensitive\n" +" encode lower-case alphabet characters in 8-bit mode. (default)\n\n" +" -i, --ignorecase\n" +" ignore case distinctions and use only upper-case characters.\n\n" +" -8, --8bit encode entire data in 8-bit mode. -k, -c and -i will be ignored.\n\n" +" -M, --micro encode in a Micro QR Code. (experimental)\n\n" +" -V, --version\n" +" display the version number and copyrights of the qrencode.\n\n" +" [STRING] input data. If it is not specified, data will be taken from\n" +" standard input.\n" + ); + } else { + fprintf(stderr, +"Usage: view_qrcode [OPTION]... [STRING]\n" +"Encode input data in a QR Code and display.\n\n" +" -h display this message.\n" +" --help display the usage of long options.\n" +" -s NUMBER specify module size in dots (pixels). (default=3)\n" +" -l {LMQH} specify error correction level from L (lowest) to H (highest).\n" +" (default=L)\n" +" -v NUMBER specify the version of the symbol. (default=auto)\n" +" -m NUMBER specify the width of the margins. (default=4)\n" +" -S make structured symbols. Version must be specified.\n" +" -k assume that the input text contains kanji (shift-jis).\n" +" -c encode lower-case alphabet characters in 8-bit mode. (default)\n" +" -i ignore case distinctions and use only upper-case characters.\n" +" -8 encode entire data in 8-bit mode. -k, -c and -i will be ignored.\n" +" -M encode in a Micro QR Code.\n" +" -V display the version number and copyrights of the qrencode.\n" +" [STRING] input data. If it is not specified, data will be taken from\n" +" standard input.\n" + ); + } + } +} + +#define MAX_DATA_SIZE (7090 * 16) /* from the specification */ +static unsigned char *readStdin(int *length) +{ + unsigned char *buffer; + int ret; + + buffer = (unsigned char *)malloc(MAX_DATA_SIZE + 1); + if(buffer == NULL) { + fprintf(stderr, "Memory allocation failed.\n"); + exit(EXIT_FAILURE); + } + + ret = fread(buffer, 1, MAX_DATA_SIZE, stdin); + if(ret == 0) { + fprintf(stderr, "No input data.\n"); + exit(EXIT_FAILURE); + } + if(feof(stdin) == 0) { + fprintf(stderr, "Input data is too large.\n"); + exit(EXIT_FAILURE); + } + + buffer[ret] = '\0'; + *length = ret; + + return buffer; +} + +static void draw_QRcode(QRcode *qrcode, int ox, int oy) +{ + int x, y, width; + unsigned char *p; + SDL_Rect rect; + + ox += margin * size; + oy += margin * size; + width = qrcode->width; + p = qrcode->data; + for(y=0; y<width; y++) { + for(x=0; x<width; x++) { + rect.x = ox + x * size; + rect.y = oy + y * size; + rect.w = size; + rect.h = size; + SDL_FillRect(screen, &rect, (*p&1)?0:0xffffff); + p++; + } + } +} + +void draw_singleQRcode(QRinput *stream, int mask) +{ + QRcode *qrcode; + int width; + + QRinput_setVersionAndErrorCorrectionLevel(stream, version, level); + if(micro) { + qrcode = QRcode_encodeMaskMQR(stream, mask); + } else { + qrcode = QRcode_encodeMask(stream, mask); + } + if(qrcode == NULL) { + width = (11 + margin * 2) * size; + fprintf(stderr, "Input data does not fit to this setting.\n"); + } else { + version = qrcode->version; + width = (qrcode->width + margin * 2) * size; + } + + screen = SDL_SetVideoMode(width, width, 32, 0); + SDL_FillRect(screen, NULL, 0xffffff); + if(qrcode) { + draw_QRcode(qrcode, 0, 0); + } + SDL_Flip(screen); + QRcode_free(qrcode); +} + +void draw_structuredQRcode(QRinput_Struct *s) +{ + int i, w, h, n, x, y; + int swidth; + QRcode_List *qrcodes, *p; + + qrcodes = QRcode_encodeInputStructured(s); + if(qrcodes == NULL) return; + + swidth = (qrcodes->code->width + margin * 2) * size; + n = QRcode_List_size(qrcodes); + w = (n < 4)?n:4; + h = (n - 1) / 4 + 1; + + screen = SDL_SetVideoMode(swidth * w, swidth * h, 32, 0); + SDL_FillRect(screen, NULL, 0xffffff); + + p = qrcodes; + for(i=0; i<n; i++) { + x = (i % 4) * swidth; + y = (i / 4) * swidth; + draw_QRcode(p->code, x, y); + p = p->next; + } + SDL_Flip(screen); + QRcode_List_free(qrcodes); +} + +void draw_structuredQRcodeFromText(int argc, char **argv) +{ + QRinput_Struct *s; + QRinput *input; + int i, ret; + + s = QRinput_Struct_new(); + if(s == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + for(i=0; i<argc; i++) { + input = QRinput_new2(version, level); + if(input == NULL) { + fprintf(stderr, "Failed to allocate memory.\n"); + exit(EXIT_FAILURE); + } + if(eightbit) { + ret = QRinput_append(input, QR_MODE_8, strlen(argv[i]), (unsigned char *)argv[i]); + } else { + ret = Split_splitStringToQRinput(argv[i], input, hint, casesensitive); + } + if(ret < 0) { + perror("Encoding the input string"); + exit(EXIT_FAILURE); + } + ret = QRinput_Struct_appendInput(s, input); + if(ret < 0) { + perror("Encoding the input string"); + exit(EXIT_FAILURE); + } + } + ret = QRinput_Struct_insertStructuredAppendHeaders(s); + if(ret < 0) { + fprintf(stderr, "Too many inputs.\n"); + } + + draw_structuredQRcode(s); + QRinput_Struct_free(s); +} + +void draw_structuredQRcodeFromQRinput(QRinput *stream) +{ + QRinput_Struct *s; + + QRinput_setVersion(stream, version); + QRinput_setErrorCorrectionLevel(stream, level); + s = QRinput_splitQRinputToStruct(stream); + if(s != NULL) { + draw_structuredQRcode(s); + QRinput_Struct_free(s); + } else { + fprintf(stderr, "Input data is too large for this setting.\n"); + } +} + +void view(int mode, QRinput *input) +{ + int flag = 1; + int mask = -1; + SDL_Event event; + int loop; + + while(flag) { + if(mode) { + draw_structuredQRcodeFromText(textc, textv); + } else { + if(structured) { + draw_structuredQRcodeFromQRinput(input); + } else { + draw_singleQRcode(input, mask); + } + } + if(mode || structured) { + printf("Version %d, Level %c.\n", version, levelChar[level]); + } else { + printf("Version %d, Level %c, Mask %d.\n", version, levelChar[level], mask); + } + loop = 1; + while(loop) { + usleep(10000); + while(SDL_PollEvent(&event)) { + if(event.type == SDL_KEYDOWN) { + switch(event.key.keysym.sym) { + case SDLK_RIGHT: + version++; + if(version > QRSPEC_VERSION_MAX) + version = QRSPEC_VERSION_MAX; + loop = 0; + break; + case SDLK_LEFT: + version--; + if(version < 1) + version = 1; + loop = 0; + break; + case SDLK_UP: + size++; + loop = 0; + break; + case SDLK_DOWN: + size--; + if(size < 1) size = 1; + loop = 0; + break; + case SDLK_0: + case SDLK_1: + case SDLK_2: + case SDLK_3: + case SDLK_4: + case SDLK_5: + case SDLK_6: + case SDLK_7: + if(!mode && !structured) { + mask = (event.key.keysym.sym - SDLK_0); + loop = 0; + } + break; + case SDLK_8: + if(!mode && !structured) { + mask = -1; + loop = 0; + } + break; + case SDLK_l: + level = QR_ECLEVEL_L; + loop = 0; + break; + case SDLK_m: + level = QR_ECLEVEL_M; + loop = 0; + break; + case SDLK_h: + level = QR_ECLEVEL_H; + loop = 0; + break; + case SDLK_q: + level = QR_ECLEVEL_Q; + loop = 0; + break; + case SDLK_ESCAPE: + loop = 0; + flag = 0; + break; + default: + break; + } + } + if(event.type == SDL_QUIT) { + loop = 0; + flag = 0; + } + } + } + } +} + +void view_simple(const unsigned char *str, int length) +{ + QRinput *input; + int ret; + + if(micro) { + input = QRinput_newMQR(version, level); + } else { + input = QRinput_new2(version, level); + } + if(input == NULL) { + fprintf(stderr, "Memory allocation error.\n"); + exit(EXIT_FAILURE); + } + if(eightbit) { + ret = QRinput_append(input, QR_MODE_8, length, str); + } else { + ret = Split_splitStringToQRinput((char *)str, input, hint, casesensitive); + } + if(ret < 0) { + perror("Encoding the input string"); + exit(EXIT_FAILURE); + } + + view(0, input); + + QRinput_free(input); +} + +void view_multiText(char **argv, int argc) +{ + textc = argc; + textv = argv; + + view(1, NULL); +} + +int main(int argc, char **argv) +{ + int opt, lindex = -1; + unsigned char *intext = NULL; + int length = 0; + + while((opt = getopt_long(argc, argv, optstring, options, &lindex)) != -1) { + switch(opt) { + case 'h': + if(lindex == 0) { + usage(1, 1); + } else { + usage(1, 0); + } + exit(EXIT_SUCCESS); + break; + case 's': + size = atoi(optarg); + if(size <= 0) { + fprintf(stderr, "Invalid size: %d\n", size); + exit(EXIT_FAILURE); + } + break; + case 'v': + version = atoi(optarg); + if(version < 0) { + fprintf(stderr, "Invalid version: %d\n", version); + exit(EXIT_FAILURE); + } + break; + case 'l': + switch(*optarg) { + case 'l': + case 'L': + level = QR_ECLEVEL_L; + break; + case 'm': + case 'M': + level = QR_ECLEVEL_M; + break; + case 'q': + case 'Q': + level = QR_ECLEVEL_Q; + break; + case 'h': + case 'H': + level = QR_ECLEVEL_H; + break; + default: + fprintf(stderr, "Invalid level: %s\n", optarg); + exit(EXIT_FAILURE); + break; + } + break; + case 'm': + margin = atoi(optarg); + if(margin < 0) { + fprintf(stderr, "Invalid margin: %d\n", margin); + exit(EXIT_FAILURE); + } + break; + case 'S': + structured = 1; + case 'k': + hint = QR_MODE_KANJI; + break; + case 'c': + casesensitive = 1; + break; + case 'i': + casesensitive = 0; + break; + case '8': + eightbit = 1; + break; + case 'M': + micro = 1; + break; + case 'V': + usage(0, 0); + exit(EXIT_SUCCESS); + break; + default: + fprintf(stderr, "Try `view_qrcode --help' for more information.\n"); + exit(EXIT_FAILURE); + break; + } + } + if(argc == 1) { + usage(1, 0); + exit(EXIT_SUCCESS); + } + + if(optind < argc) { + intext = (unsigned char *)argv[optind]; + length = strlen((char *)intext); + } + if(intext == NULL) { + intext = readStdin(&length); + } + + if(SDL_Init(SDL_INIT_VIDEO) < 0) { + fprintf(stderr, "Failed initializing SDL: %s\n", SDL_GetError()); + return -1; + } + if(structured && version < 1) { + fprintf(stderr, "Version number must be greater than 0 to encode structured symbols.\n"); + exit(EXIT_FAILURE); + } + if(structured && (argc - optind > 1)) { + view_multiText(argv + optind, argc - optind); + } else { + view_simple(intext, length); + } + + SDL_Quit(); + + return 0; +} diff --git a/contrib/qrencode-win32/use/compile b/contrib/qrencode-win32/use/compile new file mode 100644 index 0000000..531136b --- /dev/null +++ b/contrib/qrencode-win32/use/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-2013 Free Software Foundation, Inc. +# Written by Tom Tromey <tromey@cygnus.com>. +# +# 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 <http://www.gnu.org/licenses/>. + +# 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 <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + +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 <bug-automake@gnu.org>. +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/contrib/qrencode-win32/use/config.guess b/contrib/qrencode-win32/use/config.guess new file mode 100644 index 0000000..b79252d --- /dev/null +++ b/contrib/qrencode-win32/use/config.guess @@ -0,0 +1,1558 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2013 Free Software Foundation, Inc. + +timestamp='2013-06-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 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 <http://www.gnu.org/licenses/>. +# +# 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. +# +# 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 with a ChangeLog entry to config-patches@gnu.org. + + +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 <config-patches@gnu.org>." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2013 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 <features.h> + #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'` + ;; +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 <stdio.h> /* 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 <sys/systemcfg.h> + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + + 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 <unistd.h> + 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 ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${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; } + ;; + or1k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + or32: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' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + elif /bin/uname -X 2>/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 <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # 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 [ "$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 + 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 + +eval $set_cc_for_build +cat >$dummy.c <<EOF +#ifdef _SEQUENT_ +# include <sys/types.h> +# include <sys/utsname.h> +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include <sys/param.h> + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include <sys/param.h> +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 <<EOF +$0: unable to guess system type + +This script, last modified $timestamp, has failed to recognize +the operating system you are using. It is advised that you +download the most up to date version of the config scripts from + + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +and + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +If the version you run ($0) is already up to date, please +send the following data and any information you think might be +pertinent to <config-patches@gnu.org> in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/contrib/qrencode-win32/use/config.rpath b/contrib/qrencode-win32/use/config.rpath new file mode 100644 index 0000000..c547c68 --- /dev/null +++ b/contrib/qrencode-win32/use/config.rpath @@ -0,0 +1,666 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2007 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + darwin*) + case $cc_basename in + xlc*) + wl='-Wl,' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + wl='-Wl,' + ;; + pgcc | pgf77 | pgf90) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # 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. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we cannot use + # them. + ld_shlibs=no + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + 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 + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + 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 + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if test "$GCC" = yes ; then + : + else + case $cc_basename in + xlc*) + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd1*) + ld_shlibs=no + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + 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 + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + 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 + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # 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*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix4* | aix5*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + library_names_spec='$libname.a' + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd1*) + ;; + freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + nto-qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF + +# How to pass a linker flag through the compiler. +wl="$escaped_wl" + +# Static library suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally "so"). +shlibext="$shlibext" + +# Format of library name prefix. +libname_spec="$escaped_libname_spec" + +# Library names that the linker finds when passed -lNAME. +library_names_spec="$escaped_library_names_spec" + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator="$hardcode_libdir_separator" + +# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the +# resulting binary. +hardcode_direct="$hardcode_direct" + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L="$hardcode_minus_L" + +EOF diff --git a/contrib/qrencode-win32/use/config.sub b/contrib/qrencode-win32/use/config.sub new file mode 100644 index 0000000..9633db7 --- /dev/null +++ b/contrib/qrencode-win32/use/config.sub @@ -0,0 +1,1791 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2013 Free Software Foundation, Inc. + +timestamp='2013-08-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 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 <http://www.gnu.org/licenses/>. +# +# 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 with a ChangeLog entry to config-patches@gnu.org. +# +# 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 <config-patches@gnu.org>." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2013 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 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | 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 \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 \ + | or1k | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | 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-* \ + | 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-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + 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 + ;; + 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-*) 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* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -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 + ;; + or1k-*) + 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/contrib/qrencode-win32/use/depcomp b/contrib/qrencode-win32/use/depcomp new file mode 100644 index 0000000..4ebd5b3 --- /dev/null +++ b/contrib/qrencode-win32/use/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-2013 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 <http://www.gnu.org/licenses/>. + +# 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 <oliva@dcc.unicamp.br>. + +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 <bug-automake@gnu.org>. +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/contrib/qrencode-win32/use/install-sh b/contrib/qrencode-win32/use/install-sh new file mode 100644 index 0000000..377bb86 --- /dev/null +++ b/contrib/qrencode-win32/use/install-sh @@ -0,0 +1,527 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-11-20.07; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-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 + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/contrib/qrencode-win32/use/ltmain.sh b/contrib/qrencode-win32/use/ltmain.sh new file mode 100644 index 0000000..a356aca --- /dev/null +++ b/contrib/qrencode-win32/use/ltmain.sh @@ -0,0 +1,9661 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to <bug-libtool@gnu.org>. +# GNU libtool home page: <http://www.gnu.org/software/libtool/>. +# General help using GNU software: <http://www.gnu.org/gethelp/>. + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1" +TIMESTAMP="" +package_revision=1.3337 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# NLS nuisances: We save the old values to restore during execute mode. +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +$lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + +: ${CP="cp -f"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} + +# The name of this program: +func_dirname_and_basename "$progpath" +progname=$func_basename_result + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "$my_tmpdir" +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. +func_help () +{ + $opt_debug + + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ + p + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $opt_debug + + func_error "missing argument for $1." + exit_cmd=exit +} + + +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: + + + + + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +nonopt= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "${1}=\$${1}\${2}" +} # func_append may be replaced by extended shell implementation + +# func_append_quoted var value +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +func_append_quoted () +{ + func_quote_for_eval "${2}" + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +} # func_append_quoted may be replaced by extended shell implementation + + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "${@}"` +} # func_arith may be replaced by extended shell implementation + + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false + + +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do + opt="$1" + shift + case $opt in + --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" + $opt_debug + ;; + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" + shift + ;; + --preserve-dup-deps) + opt_preserve_dup_deps=: + ;; + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) + opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" + shift + ;; + + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + + # Separate optargs to long options: + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } + + + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} + + + + +## ----------- ## +## Main. ## +## ----------- ## + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T <<EOF +# $write_libobj - a libtool object file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object=$write_lobj + +# Name of the non-PIC object +non_pic_object=$write_oldobj + +EOF + $MV "${write_libobj}T" "${write_libobj}" + } +} + + +################################################## +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # +################################################## + +# func_convert_core_file_wine_to_w32 ARG +# Helper function used by file name 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. +# +# ARG is the $build file name to be converted to w32 format. +# Result is available in $func_convert_core_file_wine_to_w32_result, and will +# be empty on error (or when ARG is empty) +func_convert_core_file_wine_to_w32 () +{ + $opt_debug + func_convert_core_file_wine_to_w32_result="$1" + if test -n "$1"; then + # Unfortunately, winepath does not exit with a non-zero error code, so we + # are forced to check the contents of stdout. On the other hand, if the + # command is not found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both error code of + # zero AND non-empty stdout, which explains the odd construction: + func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + + echo + $ECHO "Try \`$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen <import library>. + $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 >/dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat <<EOF + +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname + Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION + + The $output program cannot be directly executed until all the libtool + libraries that it depends on are installed. + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. +*/ +EOF + cat <<"EOF" +#ifdef _MSC_VER +# define _CRT_SECURE_NO_DEPRECATE 1 +#endif +#include <stdio.h> +#include <stdlib.h> +#ifdef _MSC_VER +# include <direct.h> +# include <process.h> +# include <io.h> +#else +# include <unistd.h> +# include <stdint.h> +# ifdef __CYGWIN__ +# include <io.h> +# endif +#endif +#include <malloc.h> +#include <stdarg.h> +#include <assert.h> +#include <string.h> +#include <ctype.h> +#include <errno.h> +#include <fcntl.h> +#include <sys/stat.h> + +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <<EOF +volatile const char * MAGIC_EXE = "$magic_exe"; +const char * LIB_PATH_VARNAME = "$shlibpath_var"; +EOF + + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + func_to_host_path "$temp_rpath" + cat <<EOF +const char * LIB_PATH_VALUE = "$func_to_host_path_result"; +EOF + else + cat <<"EOF" +const char * LIB_PATH_VALUE = ""; +EOF + fi + + if test -n "$dllsearchpath"; then + func_to_host_path "$dllsearchpath:" + cat <<EOF +const char * EXE_PATH_VARNAME = "PATH"; +const char * EXE_PATH_VALUE = "$func_to_host_path_result"; +EOF + else + cat <<"EOF" +const char * EXE_PATH_VARNAME = ""; +const char * EXE_PATH_VALUE = ""; +EOF + fi + + if test "$fast_install" = yes; then + cat <<EOF +const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ +EOF + else + cat <<EOF +const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ +EOF + fi + + + cat <<"EOF" + +#define LTWRAPPER_OPTION_PREFIX "--lt-" + +static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; +static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; +static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; + +int +main (int argc, char *argv[]) +{ + char **newargz; + int newargc; + char *tmp_pathspec; + char *actual_cwrapper_path; + char *actual_cwrapper_name; + char *target_name; + char *lt_argv_zero; + intptr_t rval = 127; + + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + newargz = XMALLOC (char *, argc + 1); + + /* very simple arg parsing; don't want to rely on getopt + * also, copy all non cwrapper options to newargz, except + * argz[0], which is handled differently + */ + newargc=0; + for (i = 1; i < argc; i++) + { + if (strcmp (argv[i], dumpscript_opt) == 0) + { +EOF + case "$host" in + *mingw* | *cygwin* ) + # make stdout use "unix" line endings + echo " setmode(1,_O_BINARY);" + ;; + esac + + cat <<"EOF" + lt_dump_script (stdout); + return 0; + } + if (strcmp (argv[i], debug_opt) == 0) + { + lt_debug = 1; + continue; + } + if (strcmp (argv[i], ltwrapper_option_prefix) == 0) + { + /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX + namespace, but it is not one of the ones we know about and + have already dealt with, above (inluding dump-script), then + report an error. Otherwise, targets might begin to believe + they are allowed to use options in the LTWRAPPER_OPTION_PREFIX + namespace. The first time any user complains about this, we'll + need to make LTWRAPPER_OPTION_PREFIX a configure-time option + or a configure.ac-settable value. + */ + lt_fatal (__FILE__, __LINE__, + "unrecognized %s option: '%s'", + ltwrapper_option_prefix, argv[i]); + } + /* otherwise ... */ + newargz[++newargc] = xstrdup (argv[i]); + } + newargz[++newargc] = NULL; + +EOF + cat <<EOF + /* The GNU banner must be the first non-error debug message */ + lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); +EOF + cat <<"EOF" + lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); + lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); + + tmp_pathspec = find_executable (argv[0]); + if (tmp_pathspec == NULL) + lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); + lt_debugprintf (__FILE__, __LINE__, + "(main) found exe (before symlink chase) at: %s\n", + tmp_pathspec); + + actual_cwrapper_path = chase_symlinks (tmp_pathspec); + lt_debugprintf (__FILE__, __LINE__, + "(main) found exe (after symlink chase) at: %s\n", + actual_cwrapper_path); + XFREE (tmp_pathspec); + + actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); + strendzap (actual_cwrapper_path, actual_cwrapper_name); + + /* wrapper name transforms */ + strendzap (actual_cwrapper_name, ".exe"); + tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); + XFREE (actual_cwrapper_name); + actual_cwrapper_name = tmp_pathspec; + tmp_pathspec = 0; + + /* target_name transforms -- use actual target program name; might have lt- prefix */ + target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); + strendzap (target_name, ".exe"); + tmp_pathspec = lt_extend_str (target_name, ".exe", 1); + XFREE (target_name); + target_name = tmp_pathspec; + tmp_pathspec = 0; + + lt_debugprintf (__FILE__, __LINE__, + "(main) libtool target name: %s\n", + target_name); +EOF + + cat <<EOF + newargz[0] = + XMALLOC (char, (strlen (actual_cwrapper_path) + + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); + strcpy (newargz[0], actual_cwrapper_path); + strcat (newargz[0], "$objdir"); + strcat (newargz[0], "/"); +EOF + + cat <<"EOF" + /* stop here, and copy so we don't have to do this twice */ + tmp_pathspec = xstrdup (newargz[0]); + + /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ + strcat (newargz[0], actual_cwrapper_name); + + /* DO want the lt- prefix here if it exists, so use target_name */ + lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); + XFREE (tmp_pathspec); + tmp_pathspec = NULL; +EOF + + case $host_os in + mingw*) + cat <<"EOF" + { + char* p; + while ((p = strchr (newargz[0], '\\')) != NULL) + { + *p = '/'; + } + while ((p = strchr (lt_argv_zero, '\\')) != NULL) + { + *p = '/'; + } + } +EOF + ;; + esac + + cat <<"EOF" + XFREE (target_name); + XFREE (actual_cwrapper_path); + XFREE (actual_cwrapper_name); + + lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ + lt_setenv ("DUALCASE", "1"); /* for MSK sh */ + /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must + be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) + because on Windows, both *_VARNAMEs are PATH but uninstalled + libraries must come first. */ + lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); + + lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", + nonnull (lt_argv_zero)); + for (i = 0; i < newargc; i++) + { + lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", + i, nonnull (newargz[i])); + } + +EOF + + case $host_os in + mingw*) + cat <<"EOF" + /* execv doesn't actually work on mingw as expected on unix */ + newargz = prepare_spawn (newargz); + rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); + if (rval == -1) + { + /* failed to start process */ + lt_debugprintf (__FILE__, __LINE__, + "(main) failed to launch target \"%s\": %s\n", + lt_argv_zero, nonnull (strerror (errno))); + return 127; + } + return rval; +EOF + ;; + *) + cat <<"EOF" + execv (lt_argv_zero, newargz); + return rval; /* =127, but avoids unused variable warning */ +EOF + ;; + esac + + cat <<"EOF" +} + +void * +xmalloc (size_t num) +{ + void *p = (void *) malloc (num); + if (!p) + lt_fatal (__FILE__, __LINE__, "memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), + string) : NULL; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char) name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable (const char *path) +{ + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps ; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + else + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$absdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + func_append verstring ":${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c <<EOF + int main() { return 0; } +EOF + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then + ldd_output=`ldd conftest` + for i in $deplibs; do + case $i in + -l*) + func_stripname -l '' "$i" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + func_append newdeplibs " $i" + i="" + ;; + esac + fi + if test -n "$i" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + func_append newdeplibs " $i" + else + droppeddeps=yes + echo + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + 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 I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." + fi + fi + ;; + *) + func_append newdeplibs " $i" + ;; + esac + done + else + # Error occurred in the first compile. Let's try to salvage + # the situation: Compile a separate program for each library. + for i in $deplibs; do + case $i in + -l*) + func_stripname -l '' "$i" + name=$func_stripname_result + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then + ldd_output=`ldd conftest` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + func_append newdeplibs " $i" + i="" + ;; + esac + fi + if test -n "$i" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + func_append newdeplibs " $i" + else + droppeddeps=yes + echo + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + 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 a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + fi + else + droppeddeps=yes + echo + $ECHO "*** Warning! Library $i is needed by this library but I was not able to" + echo "*** make it link in! You will probably need to install it or some" + echo "*** library that it depends on before this library will be fully" + echo "*** functional. Installing it before continuing would be even better." + fi + ;; + *) + func_append newdeplibs " $i" + ;; + esac + done + fi + ;; + file_magic*) + set dummy $deplibs_check_method; shift + file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + if test -n "$file_magic_glob"; then + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` + else + libnameglob=$libname + fi + test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + if test "$want_nocaseglob" = yes; then + shopt -s nocaseglob + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd1 in $cmds; do + IFS="$save_ifs" + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + odir="$objdir" + else + odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$opt_mode" = uninstall && odir="$dir" + + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case "$opt_mode" in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff --git a/contrib/qrencode-win32/use/missing b/contrib/qrencode-win32/use/missing new file mode 100644 index 0000000..db98974 --- /dev/null +++ b/contrib/qrencode-win32/use/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-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 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 <http://www.gnu.org/licenses/>. + +# 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 <bug-automake@gnu.org>." + 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/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.dll b/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.dll new file mode 100644 index 0000000000000000000000000000000000000000..6ae0b5dce0f412e8fe6c881b0262f29499a89662 GIT binary patch literal 42496 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�SZP<UsioWHv0kK{UvHAoD?G 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.exp b/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.exp new file mode 100644 index 0000000000000000000000000000000000000000..55871576b09940783dd9fbb0652ff93f9133f900 GIT binary patch literal 6854 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 E0K$Tj%m4rY literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.iobj b/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.iobj new file mode 100644 index 0000000000000000000000000000000000000000..19971085c8f940ca70463d4f4cfe50bce5d37328 GIT binary patch literal 367989 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%0AfMbD}Y#B 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%0AfMz4gj&Z7(lTBVsSH= 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 RA>Jh?$2T!E&%w}$0RY{}t&9Kw literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.ipdb b/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.ipdb new file mode 100644 index 0000000000000000000000000000000000000000..f972c8b101a886c095c2e75271cefdf5de2551f7 GIT binary patch literal 87552 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.lib b/contrib/qrencode-win32/vc8/.build/Release-Dll/qrcodelib.lib new file mode 100644 index 0000000000000000000000000000000000000000..a943248500de81d8343a53df519d8884173020e7 GIT binary patch literal 11736 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.command.1.tlog b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..3374044da1e29a89ee5f12eb49bb91db282ff3f9 GIT binary patch literal 11218 zcmezWFOI>P!HOY<!IvSJA(A1O!HmI#A%?+&!JomG!IdF~A(SDQ!IdG1A%-E4A&9}1 z!H>b2!Jol}!IeRmA)LXJ!H>b1!HA%&6N4v12tzPK2-plq244m}24@Cd1}+ADhGYf> z27Lxk20extI19uE*$1-=rUG3&h9Q8#kHH<RFNz@(Oy@D=GvqMjGo&-*gZbeM#!xzf zK^M&OXE1`&l~56P1|P793xfiZuRykfMEt=1bz%sG+5{4dhpKa7@Mj2T2!`v92ZvY? zgA0QXl9|YU@nP^}aAJsOaAk;K2w?DM2m*%;%q|ZGM}{y4SB7|SIQucUF?ce#GsH7^ zAlU#3cT^kV8GIR>7@VOlac9Vd`plKVgP|B2#=Z<7m+LdQLsg|Q6fjsZ6fhJqq%tHk zWHJ;pq=IdUVn}ANVkl=wX2@VjWGG^YXDC4uPh-euC}Id^NM^`qC_vGX$&km8!vG>7 z=D0EBGbl0WG3YVqGw3mZ!q1bzhrxwGADot8aSI6#eQ?U~VQ^(|1gAJ%Xb8qI#4sp< zZFgfxp@L~)49*OO3?>W)40;R!3@!{#P}AKRQoy!^FgSzhM20+uM1~xON`@+iRB%`h zY(Ak+KJ^8MzV~SE9L=53QhqddBI-Ew+(EBAiEi&`ojF=(g4z(Hbtb6g>C1qgKj@V& zL9M!Ah5!av2ItWlbF{`BtuZlrg}&gHK6)OZPyPhuPDp=sw68hZ*My8&jJ9SGty#?c zLGOGCiIdUXIhs2mDPc5sV#}S7uz}?g`sGoOTLKtD8A3+ewxey^(Y7r{+ZI%RV&)P0 z<xlih_2{V3=%~=>s1WjeBzg{^Pu>h-2nNsHf#yhIwf1P<9L<}fc@vg5vE>l@<V{eC z0P1CowrNM#AB?U)0M$^at9UT;2YvD-XjO&<bQKXSUSb&B8C)4c82lLmM*E<n>xJNL zDp2|D#4tMd37Y#PKHm&nK8C~>Wc?s4Z$rdDt>XZO0EW?ZfTQaGT^S&0V({eafB{?w Nh%H}3!iP{k0sxiu2Oj_c literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.read.1.tlog b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..fe35bc75531015ae1802c90e52e9580855a4aa3a GIT binary patch literal 62740 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.write.1.tlog b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/CL.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..cd088ca6007b87d83e0c49eee5b48c32d76022ca GIT binary patch literal 7592 zcmezWFOI>P!HOY<!IvSJA(A1O!HmI#A%?+&!JomG!IdF~A(SDQ!IdG1A%-E4A&9}1 z!H>b2!Jol}!IeRmA)LXJ!H>b1!HA%&6N4v12tzPK2-plq244m}24{vEy4dZ@;K&fn z;7wN>2f|KJ`~))uFt{=})6uUWTOp}}eld!$6Ot0?YcnX#2QY*(gwQ#Z=^wX248ic+ zPQNe)`O^nnUeM3ZFa~D^3uq|@E8k)m+!<UMLKyrR0-$lt%fLmK5)0-UJq9O+PzFy1 z9|jjRw}HaPi6I7Dn))!ff=f71iR{AQ!{EaZ!vHeDkimq(fI*KTfWd{qiDBrt9W~Vb z8JrlrhLG!#Q}0l7J8FI(YOV*>3ZT%3)PF<K^~g2LP;@_}9RRD7hprFw7>1hLeZj5s zp_}@B84xYzp%?bB{>4ypIksLI!Vd%4GaNdt73?i7`h*=K&o~dE7Sh0m*l3uMI(CCz zw~VGW;>Nr{?NLaJ2-J@qEzyV>Cq#r9tQ9$$+K5kW$o+@Wa3en45bfsCP$MqXP)7<z zLyfpl1En+2$Q@+lc(g_!rbYm@7Ki`HEPeV5*uoN&9zi3?pqdvp@(mFKwORrg0)~9g Tf*$jmu#hEx#2#DtBl_Y1$1gAv literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.command.1.tlog b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..5c8c8d7915871999833df5a17a77c776b4bfc60c GIT binary patch literal 4444 zcmezWFOI>P!HOY<!IvSJA(A1O!HmI#A%?+&!JomG!IdF~A(SDQ!IdG1A%-E4A&9}1 z!H>b2!Jol}!IeRmA)LXJ!H>b1!HA%27=tr|1w#yj9)lA@D1#@14}%L-56m<l22Tbj zh8VCNJ`Ao5j$nIr8C)2A7<?FF7@Qb98A2F>8A8A+92tBW^cegZoEW?qYKDjp+!<UM zLKyrR0vJMuoZEfD@!>rL-92<&4$5!A3;_(T49-I?+(B+f&DldOw}N~CDeZ=?%OU0T zP;@`2UI}0b9fBn#DBTRzTpPp?46ogXTB-qsIj9YRs9Sj%xES;q{K2Wnib07%k3o+? zAEgDN4{l5NU}<fDViCRkg0w`G7!(-v!R;Prux?N*$&Vp~!I8m-!HU6;!5=ISqJ0?r z8Qh_KkjtDH0vH?_LKr+4tiW!8w5VXV#4rRf_%XOMC@{d(f_R1urVM&e5d{Wsa7)aO z!Ii-W-0DKez*=dbwirUxoxz2{6HO(g%?1iBe+GXBA0*R3F7XAox7^Y6I5M~}gfTcW z1YnpJ%-{ib4Z3?kCcC1U0ugfr#|NrAL&0rA7bLfUN-ie`XABcu7(k-V3;}2|`rsC+ z8v`hwvB#Y&gBt@R?m#U9KL$?*HwIU5dlD3%=whJ^j^I|M5<?C{Dnl7VDnkx~ErU8k zB118QCqo`X8ACopHbW{y5raB|0z)Z7CW9kGGD9*$Dnl_tF<509Ln1>CLoq`tgF4jS zT!uu3Jcdk$G_a}?1}lbChFpduhE#?WaGC+NsX?t{P#Vx@2w(vD733dE(=Eg#h~I-5 zLK&Q(E&UJ%R|a1OD`+d;g~6X8oFN$O5=a}>3Y@;(P((Z#oEab@J`5oY&J6AhRt%X8 zc?`)6MPT2gGUPFofPD@M)er_BaJ$`w!HU5UY>o><B!eFVsPzsq$qC%5bOp=!F+_mN z9$#oK0qOT-0P!ICff^wJF$oe9pcr>%@BrszR|YGF2nGuVGq6j7862T$!<E4UECR{- z3OLFT%=Cu4T*2LoQKEwBAU_2&AX@3vF_Si?f<g^c3L&>{so`Fbxv1?n>Y55FnOx!R zacY^3+1{a+$+QS#Z0!VUxEJJBP##6p;nXk{Tfdtc=7LfhsLlkH+aOmvA*BjX+XDb+ C1#2<@ literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.read.1.tlog b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..7a1b636627e50220e49981429be0e434be152896 GIT binary patch literal 8034 zcmezWFOI>P!HOY<!IvSJA(A1O!HmI#A%?+&!JomG!IdF~A(SDQ!IdG1A%-E4A&9}1 z!H>b2!Jol}!IeRmA)LXJ!H>b1!HA%27=tr|1w#yj9)lA@D1#@14}%L-56m<l22Tbj zh8VCNJ`Ao5j$nIr8C)2A7<?FF7@Qb98A2F>8A8A+92tBW^cegZoEW?qYKDjp+!<UM zLKyrR0vJMuoZEfD@!>rL-92<&4$5!A3;_(T49-I?+(B+f&DldOw}N~CDeZ=?%OU0T zP;@`2UI}0b9fBn#DBTRzTpPp?46ogXTB-qsIj9YRs9Sj%xS%ZqNIS)a!Ji?VA($bC z!JWYe+;(te0O^QgaAXK!@MQ33@MDN!2xjnS2m<r{7~GNgpcaoCgCj#IgAW794nGDT zhF}JS9rS5Gfl?Q&T#aD}V1T$0<O?S#&yc~CK@aRNCnVPeFa$C9Gq^JZF@Rc53Jh-G zHkd0zFoObv215jc1%nxbCPNIgMF$Hh1qN?ut1E`Vf<ceLkRb+YGE8L{gBgP!gE6?B z=*tiTH7SO{8{B5}V{m2g0k;na-bJu>EU2|Q@UC%ZaAEKqBq0OI9iaT<&*0DCGYC=- zD24liTmJ5YB#ayxTo}R_92o)zO{@hocz|=)V98≷b)`VhiFHP+1)^NL&;O?)AD1 zg1iN46FM<C50Y?!xyG3x0Edg{Q?JruT!P+h1M>ZV-bWrvE+5Kn2esxv^)7M`f9Qlg z$n~f_<e}(xPzmG;A72?-KEUiH4=wi(-L#Lbr#y7R9u)4NJ|n0f3mHQnI&Q}{iavB) z4=OW3y&KSI0w@NYu#`N+_SJnEJQ<w9{d&-tg&RW%g91YsgC|2ULns4iWJ3WwTM`QH zY5FrLFc>nJFz7KDFvKu`W@8{TDxeV$X9gn%J#cT!hl~*eN?id71<3pp$X%eZ7xMe( z)N&1|2jRlt2Occ}jgkz!iy&bW%HRhcn*z<vk?$r*k00A8k0CgHz~ThN1Em<y$d3Vo z5rYYX0W<}Lf>T}y(ufaC1k+XYX~ARWEXa%{dTs;dJhuTz=b-sZP;LW-sWEuO3>3<K z4Bp_LA!hzVjU&*wBxrUvgu#`;7u-{dVF+P}0?&m8Q;>U6ZNWC)2Xi-Mj1V+G3!05` pWr$#K9l%g@W(b4M1cQ7((5?Zc@BjuE1}BDKh9HJ820aFZivX3qV^9D9 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.write.1.tlog b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/link.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..55f45710851dcc85be9a555b576f901eb011a739 GIT binary patch literal 2980 zcmezWFOI>P!HOY<!IvSJA(A1O!HmI#A%?+&!JomG!IdF~A(SDQ!IdG1A%-E4A&9}1 z!H>b2!Jol}!IeRmA)LXJ!H>b1!HA%27=tr|1w#yj9)lA@D1#@14}%L-56m<l22Tbj zh8VCNJ`Ao5j$nIr8C)2A7<?FF7@Qb98A2F>8A8A+92tBW^cegZoEW?qYKDjp+!<UM zLKyrR0vJMuoZEfD@!>rL-92<&4$5!A3;_(T49-I?+(B+f&DldOw}N~CDeZ=?%OU0T zP;@`2UI}0b9fBn#DBTRzTpPp?46ogXTB-qsIj9YRs9Sj%xCXFg0BS4wU}?vI(g%9U e2x;RC9rt=N1TeTTI57+*7em^LL&wF45C#Bq+N|{e literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/qrcodelib.lastbuildstate b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/qrcodelib.lastbuildstate new file mode 100644 index 0000000..34ace4d --- /dev/null +++ b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/qrcodelib.lastbuildstate @@ -0,0 +1,2 @@ +#TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1 +Release-Dll|Win32|C:\msys64\home\user\qrencode-win32\qrencode-win32\vc8\| diff --git a/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/qrcodelib.write.1u.tlog b/contrib/qrencode-win32/vc8/.build/qrcodelib/Release-Dll/qrcodelib.tlog/qrcodelib.write.1u.tlog new file mode 100644 index 0000000000000000000000000000000000000000..0f40487dfd4e07ba46ef599876cff0945877d77c GIT binary patch literal 522 zcmezWFOI>P!HOY<A(x?;p^~AP!HmI#A%-D?A)g_aA(bJ9p_HMRA(f$sA%>xlp@<=s zA&()MA)g_IA(cUwp`0O;A&<eB!HA%28ACFI1ymJGe-1+?LlRaoJqD2a3WfrPB8Gg1 zECyZ%F1or>k0FVnlp&KLharU_h9QU{l_7^Al_3!v61og73^@!rINS~K)6j8mDg!8# HLGA?r0;ysl literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qr.iss b/contrib/qrencode-win32/vc8/qr.iss new file mode 100644 index 0000000..31283e7 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qr.iss @@ -0,0 +1,25 @@ + +[Setup] +AppName=QRCodeGui +AppVersion=3.4.4.0 +DefaultDirName={pf}\QRCodeGui +DefaultGroupName=QRCodeGui +UninstallDisplayIcon={app}\qrcodegui.exe +Compression=lzma2 +SolidCompression=yes +LicenseFile=..\COPYING +OutputDir=.\.build\setup +OutputBaseFilename=qrcodegui_setup-3.4.4 + +[Files] +Source: "settings.ini"; DestDir: "{userappdata}\QRCodeGui" +Source: ".\.build\release-lib\qrcodegui.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: ".\.build\release-lib\qrcodecon.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: ".\.build\release-lib\qrcode.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: ".\test.bat"; DestDir: "{app}"; Flags: ignoreversion + +[Run] +Filename: "{app}\qrcodegui.exe"; Description: "Open QRCodeGui after finish"; Flags: postinstall + +[Icons] +Name: "{group}\QRCodeGui"; Filename: "{app}\qrcodegui.exe" diff --git a/contrib/qrencode-win32/vc8/qrcode.sln b/contrib/qrencode-win32/vc8/qrcode.sln new file mode 100644 index 0000000..89c2bb3 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode.sln @@ -0,0 +1,58 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcodelib", "qrcodelib\qrcodelib.vcxproj", "{9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcode", "qrcode\qrcode.vcxproj", "{3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcodegui", "qrcodegui\qrcodegui.vcxproj", "{B77F9451-3595-427C-9366-A8D82F27B33B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcodecon", "qrcodecon\qrcodecon.vcxproj", "{0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug-Dll|Win32 = Debug-Dll|Win32 + Debug-Lib|Win32 = Debug-Lib|Win32 + Release-Dll|Win32 = Release-Dll|Win32 + Release-Lib|Win32 = Release-Lib|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dll|Win32.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dll|Win32.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Lib|Win32.ActiveCfg = Debug-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Lib|Win32.Build.0 = Debug-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dll|Win32.ActiveCfg = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dll|Win32.Build.0 = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|Win32.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|Win32.Build.0 = Release-Lib|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Debug-Dll|Win32.ActiveCfg = Debug-Dll|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Debug-Dll|Win32.Build.0 = Debug-Dll|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Debug-Lib|Win32.ActiveCfg = Debug-Lib|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Debug-Lib|Win32.Build.0 = Debug-Lib|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Release-Dll|Win32.ActiveCfg = Release-Dll|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Release-Dll|Win32.Build.0 = Release-Dll|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Release-Lib|Win32.ActiveCfg = Release-Lib|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Release-Lib|Win32.Build.0 = Release-Lib|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Debug-Dll|Win32.ActiveCfg = Debug-Dll|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Debug-Dll|Win32.Build.0 = Debug-Dll|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Debug-Lib|Win32.ActiveCfg = Debug-Lib|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Debug-Lib|Win32.Build.0 = Debug-Lib|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Release-Dll|Win32.ActiveCfg = Release-Dll|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Release-Dll|Win32.Build.0 = Release-Dll|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Release-Lib|Win32.ActiveCfg = Release-Lib|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Release-Lib|Win32.Build.0 = Release-Lib|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Debug-Dll|Win32.ActiveCfg = Debug-Dll|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Debug-Dll|Win32.Build.0 = Debug-Dll|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Debug-Lib|Win32.ActiveCfg = Debug-Lib|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Debug-Lib|Win32.Build.0 = Debug-Lib|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Release-Dll|Win32.ActiveCfg = Release-Dll|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Release-Dll|Win32.Build.0 = Release-Dll|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Release-Lib|Win32.ActiveCfg = Release-Lib|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Release-Lib|Win32.Build.0 = Release-Lib|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/contrib/qrencode-win32/vc8/qrcode/ReadMe.txt b/contrib/qrencode-win32/vc8/qrcode/ReadMe.txt new file mode 100644 index 0000000..94ef38b --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/ReadMe.txt @@ -0,0 +1,33 @@ +======================================================================== + CONSOLE APPLICATION : qrcode Project Overview +======================================================================== + +AppWizard has created this qrcode application for you. + +This file contains a summary of what you will find in each of the files that +make up your qrcode application. + + +qrcode.vcproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +qrcode.cpp + This is the main application source file. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named qrcode.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/contrib/qrencode-win32/vc8/qrcode/config.h b/contrib/qrencode-win32/vc8/qrcode/config.h new file mode 100644 index 0000000..0f09943 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/config.h @@ -0,0 +1,17 @@ + + +#define MAJOR_VERSION 3 +#define MINOR_VERSION 4 +#define MICRO_VERSION 4 +#define VERSION "3.4.4" + +#define __STATIC static + +#if defined(_WIN32) || defined(_WIN64) + #define strcasecmp _stricmp + #define strncasecmp _strnicmp + #if _MSC_VER < 1900 + #define snprintf _snprintf + #define vsnprintf _vsnprintf + #endif +#endif diff --git a/contrib/qrencode-win32/vc8/qrcode/getopt.c b/contrib/qrencode-win32/vc8/qrcode/getopt.c new file mode 100644 index 0000000..1011323 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/getopt.c @@ -0,0 +1,533 @@ +/* Getopt for Microsoft C +This code is a modification of the Free Software Foundation, Inc. +Getopt library for parsing command line argument the purpose was +to provide a Microsoft Visual C friendly derivative. This code +provides functionality for both Unicode and Multibyte builds. + +Date: 02/03/2011 - Ludvik Jerabek - Initial Release +Version: 1.0 +Comment: Supports getopt, getopt_long, and getopt_long_only +and POSIXLY_CORRECT environment flag +License: LGPL + +Revisions: + +02/03/2011 - Ludvik Jerabek - Initial Release +02/20/2011 - Ludvik Jerabek - Fixed compiler warnings at Level 4 +07/05/2011 - Ludvik Jerabek - Added no_argument, required_argument, optional_argument defs +08/03/2011 - Ludvik Jerabek - Fixed non-argument runtime bug which caused runtime exception +08/09/2011 - Ludvik Jerabek - Added code to export functions for DLL and LIB +02/15/2012 - Ludvik Jerabek - Fixed _GETOPT_THROW definition missing in implementation file + +**DISCLAIMER** +THIS MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESS OR IMPLIED, INCLUDING, BUT Not LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, OR NON-INFRINGEMENT. SOME JURISDICTIONS DO NOT ALLOW THE +EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT +APPLY TO YOU. IN NO EVENT WILL I BE LIABLE TO ANY PARTY FOR ANY +DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES FOR ANY +USE OF THIS MATERIAL INCLUDING, WITHOUT LIMITATION, ANY LOST +PROFITS, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR OTHER DATA ON +YOUR INFORMATION HANDLING SYSTEM OR OTHERWISE, EVEN If WE ARE +EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +*/ + +#define _CRT_SECURE_NO_WARNINGS +#include <stdlib.h> +#include <stdio.h> +#include "getopt.h" + +#ifdef __cplusplus +#define _GETOPT_THROW throw() +#else +#define _GETOPT_THROW +#endif + +enum ENUM_ORDERING { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER }; + +struct _getopt_data +{ + int optind; + int opterr; + int optopt; + TCHAR *optarg; + int __initialized; + TCHAR *__nextchar; + int __ordering; + int __posixly_correct; + int __first_nonopt; + int __last_nonopt; +}; + +static struct _getopt_data getopt_data; + +TCHAR *optarg; +int optind = 1; +int opterr = 1; +int optopt = _T('?'); + +static void exchange(TCHAR **argv, struct _getopt_data *d) +{ + int bottom = d->__first_nonopt; + int middle = d->__last_nonopt; + int top = d->optind; + TCHAR *tem; + while (top > middle && middle > bottom) + { + if (top - middle > middle - bottom) + { + int len = middle - bottom; + register int i; + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + } + top -= len; + } + else + { + int len = top - middle; + register int i; + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + } + bottom += len; + } + } + d->__first_nonopt += (d->optind - d->__last_nonopt); + d->__last_nonopt = d->optind; +} + + +static const TCHAR *_getopt_initialize (const TCHAR *optstring, struct _getopt_data *d, int posixly_correct) +{ + d->__first_nonopt = d->__last_nonopt = d->optind; + d->__nextchar = NULL; + d->__posixly_correct = posixly_correct | !!_tgetenv(_T("POSIXLY_CORRECT")); + + + if (optstring[0] == _T('-')) + { + d->__ordering = RETURN_IN_ORDER; + ++optstring; + } + else if (optstring[0] == _T('+')) + { + d->__ordering = REQUIRE_ORDER; + ++optstring; + } + else if (d->__posixly_correct) + d->__ordering = REQUIRE_ORDER; + else + d->__ordering = PERMUTE; + return optstring; +} + +int _getopt_internal_r (int argc, TCHAR *const *argv, const TCHAR *optstring, const struct option *longopts, int *longind, int long_only, struct _getopt_data *d, int posixly_correct) +{ + int print_errors = d->opterr; + + if (argc < 1) + return -1; + + d->optarg = NULL; + + if (d->optind == 0 || !d->__initialized) + { + if (d->optind == 0) + d->optind = 1; + optstring = _getopt_initialize (optstring, d, posixly_correct); + d->__initialized = 1; + } + else if (optstring[0] == _T('-') || optstring[0] == _T('+')) + optstring++; + if (optstring[0] == _T(':')) + print_errors = 0; + + if (d->__nextchar == NULL || *d->__nextchar == _T('\0')) + { + if (d->__last_nonopt > d->optind) + d->__last_nonopt = d->optind; + if (d->__first_nonopt > d->optind) + d->__first_nonopt = d->optind; + + if (d->__ordering == PERMUTE) + { + if (d->__first_nonopt != d->__last_nonopt && d->__last_nonopt != d->optind) + exchange ((TCHAR **) argv, d); + else if (d->__last_nonopt != d->optind) + d->__first_nonopt = d->optind; + + while (d->optind < argc && (argv[d->optind][0] != _T('-') || argv[d->optind][1] == _T('\0'))) + d->optind++; + d->__last_nonopt = d->optind; + } + + if (d->optind != argc && !_tcscmp(argv[d->optind], _T("--"))) + { + d->optind++; + + if (d->__first_nonopt != d->__last_nonopt && d->__last_nonopt != d->optind) + exchange ((TCHAR **) argv, d); + else if (d->__first_nonopt == d->__last_nonopt) + d->__first_nonopt = d->optind; + d->__last_nonopt = argc; + + d->optind = argc; + } + + if (d->optind == argc) + { + if (d->__first_nonopt != d->__last_nonopt) + d->optind = d->__first_nonopt; + return -1; + } + + if ((argv[d->optind][0] != _T('-') || argv[d->optind][1] == _T('\0'))) + { + if (d->__ordering == REQUIRE_ORDER) + return -1; + d->optarg = argv[d->optind++]; + return 1; + } + + d->__nextchar = (argv[d->optind] + 1 + (longopts != NULL && argv[d->optind][1] == _T('-'))); + } + + if (longopts != NULL && (argv[d->optind][1] == _T('-') || (long_only && (argv[d->optind][2] || !_tcschr(optstring, argv[d->optind][1]))))) + { + TCHAR *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound = -1; + int option_index; + + for (nameend = d->__nextchar; *nameend && *nameend != _T('='); nameend++); + + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!_tcsncmp(p->name, d->__nextchar, nameend - d->__nextchar)) + { + if ((unsigned int)(nameend - d->__nextchar) == (unsigned int)_tcslen(p->name)) + { + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + pfound = p; + indfound = option_index; + } + else if (long_only || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) + ambig = 1; + } + + if (ambig && !exact) + { + if (print_errors) + { + _ftprintf(stderr, _T("%s: option '%s' is ambiguous\n"), + argv[0], argv[d->optind]); + } + d->__nextchar += _tcslen(d->__nextchar); + d->optind++; + d->optopt = 0; + return _T('?'); + } + + if (pfound != NULL) + { + option_index = indfound; + d->optind++; + if (*nameend) + { + if (pfound->has_arg) + d->optarg = nameend + 1; + else + { + if (print_errors) + { + if (argv[d->optind - 1][1] == _T('-')) + { + _ftprintf(stderr, _T("%s: option '--%s' doesn't allow an argument\n"),argv[0], pfound->name); + } + else + { + _ftprintf(stderr, _T("%s: option '%c%s' doesn't allow an argument\n"),argv[0], argv[d->optind - 1][0],pfound->name); + } + + } + + d->__nextchar += _tcslen(d->__nextchar); + + d->optopt = pfound->val; + return _T('?'); + } + } + else if (pfound->has_arg == 1) + { + if (d->optind < argc) + d->optarg = argv[d->optind++]; + else + { + if (print_errors) + { + _ftprintf(stderr,_T("%s: option '--%s' requires an argument\n"),argv[0], pfound->name); + } + d->__nextchar += _tcslen(d->__nextchar); + d->optopt = pfound->val; + return optstring[0] == _T(':') ? _T(':') : _T('?'); + } + } + d->__nextchar += _tcslen(d->__nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + + if (!long_only || argv[d->optind][1] == _T('-') || _tcschr(optstring, *d->__nextchar) == NULL) + { + if (print_errors) + { + if (argv[d->optind][1] == _T('-')) + { + /* --option */ + _ftprintf(stderr, _T("%s: unrecognized option '--%s'\n"),argv[0], d->__nextchar); + } + else + { + /* +option or -option */ + _ftprintf(stderr, _T("%s: unrecognized option '%c%s'\n"),argv[0], argv[d->optind][0], d->__nextchar); + } + } + d->__nextchar = (TCHAR *)_T(""); + d->optind++; + d->optopt = 0; + return _T('?'); + } + } + + { + TCHAR c = *d->__nextchar++; + TCHAR *temp = (TCHAR*)_tcschr(optstring, c); + + if (*d->__nextchar == _T('\0')) + ++d->optind; + + if (temp == NULL || c == _T(':') || c == _T(';')) + { + if (print_errors) + { + _ftprintf(stderr, _T("%s: invalid option -- '%c'\n"), argv[0], c); + } + d->optopt = c; + return _T('?'); + } + if (temp[0] == _T('W') && temp[1] == _T(';')) + { + TCHAR *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound = 0; + int option_index; + + if (*d->__nextchar != _T('\0')) + { + d->optarg = d->__nextchar; + d->optind++; + } + else if (d->optind == argc) + { + if (print_errors) + { + _ftprintf(stderr, + _T("%s: option requires an argument -- '%c'\n"), + argv[0], c); + } + d->optopt = c; + if (optstring[0] == _T(':')) + c = _T(':'); + else + c = _T('?'); + return c; + } + else + d->optarg = argv[d->optind++]; + + for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != _T('='); nameend++); + + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!_tcsncmp(p->name, d->__nextchar, nameend - d->__nextchar)) + { + if ((unsigned int) (nameend - d->__nextchar) == _tcslen(p->name)) + { + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + pfound = p; + indfound = option_index; + } + else if (long_only || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) + ambig = 1; + } + if (ambig && !exact) + { + if (print_errors) + { + _ftprintf(stderr, _T("%s: option '-W %s' is ambiguous\n"), + argv[0], d->optarg); + } + d->__nextchar += _tcslen(d->__nextchar); + d->optind++; + return _T('?'); + } + if (pfound != NULL) + { + option_index = indfound; + if (*nameend) + { + if (pfound->has_arg) + d->optarg = nameend + 1; + else + { + if (print_errors) + { + _ftprintf(stderr, _T("\ + %s: option '-W %s' doesn't allow an argument\n"), + argv[0], pfound->name); + } + + d->__nextchar += _tcslen(d->__nextchar); + return _T('?'); + } + } + else if (pfound->has_arg == 1) + { + if (d->optind < argc) + d->optarg = argv[d->optind++]; + else + { + if (print_errors) + { + _ftprintf(stderr, _T("\ + %s: option '-W %s' requires an argument\n"), + argv[0], pfound->name); + } + d->__nextchar += _tcslen(d->__nextchar); + return optstring[0] == _T(':') ? _T(':') : _T('?'); + } + } + else + d->optarg = NULL; + d->__nextchar += _tcslen(d->__nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + d->__nextchar = NULL; + return _T('W'); + } + if (temp[1] == _T(':')) + { + if (temp[2] == _T(':')) + { + if (*d->__nextchar != _T('\0')) + { + d->optarg = d->__nextchar; + d->optind++; + } + else + d->optarg = NULL; + d->__nextchar = NULL; + } + else + { + if (*d->__nextchar != _T('\0')) + { + d->optarg = d->__nextchar; + d->optind++; + } + else if (d->optind == argc) + { + if (print_errors) + { + _ftprintf(stderr, + _T("%s: option requires an argument -- '%c'\n"), + argv[0], c); + } + d->optopt = c; + if (optstring[0] == _T(':')) + c = _T(':'); + else + c = _T('?'); + } + else + d->optarg = argv[d->optind++]; + d->__nextchar = NULL; + } + } + return c; + } +} + +int _getopt_internal (int argc, TCHAR *const *argv, const TCHAR *optstring, const struct option *longopts, int *longind, int long_only, int posixly_correct) +{ + int result; + getopt_data.optind = optind; + getopt_data.opterr = opterr; + result = _getopt_internal_r (argc, argv, optstring, longopts,longind, long_only, &getopt_data,posixly_correct); + optind = getopt_data.optind; + optarg = getopt_data.optarg; + optopt = getopt_data.optopt; + return result; +} + +int getopt (int argc, TCHAR *const *argv, const TCHAR *optstring) _GETOPT_THROW +{ + return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0, 0); +} + +int getopt_long (int argc, TCHAR *const *argv, const TCHAR *options, const struct option *long_options, int *opt_index) _GETOPT_THROW +{ + return _getopt_internal (argc, argv, options, long_options, opt_index, 0, 0); +} + +int _getopt_long_r (int argc, TCHAR *const *argv, const TCHAR *options, const struct option *long_options, int *opt_index, struct _getopt_data *d) +{ + return _getopt_internal_r (argc, argv, options, long_options, opt_index,0, d, 0); +} + +int getopt_long_only (int argc, TCHAR *const *argv, const TCHAR *options, const struct option *long_options, int *opt_index) _GETOPT_THROW +{ + return _getopt_internal (argc, argv, options, long_options, opt_index, 1, 0); +} + +int _getopt_long_only_r (int argc, TCHAR *const *argv, const TCHAR *options, const struct option *long_options, int *opt_index, struct _getopt_data *d) +{ + return _getopt_internal_r (argc, argv, options, long_options, opt_index, 1, d, 0); +} diff --git a/contrib/qrencode-win32/vc8/qrcode/getopt.h b/contrib/qrencode-win32/vc8/qrcode/getopt.h new file mode 100644 index 0000000..7cfef10 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/getopt.h @@ -0,0 +1,107 @@ +/* Getopt for Microsoft C +This code is a modification of the Free Software Foundation, Inc. +Getopt library for parsing command line argument the purpose was +to provide a Microsoft Visual C friendly derivative. This code +provides functionality for both Unicode and Multibyte builds. + +Date: 02/03/2011 - Ludvik Jerabek - Initial Release +Version: 1.0 +Comment: Supports getopt, getopt_long, and getopt_long_only +and POSIXLY_CORRECT environment flag +License: LGPL + +Revisions: + +02/03/2011 - Ludvik Jerabek - Initial Release +02/20/2011 - Ludvik Jerabek - Fixed compiler warnings at Level 4 +07/05/2011 - Ludvik Jerabek - Added no_argument, required_argument, optional_argument defs +08/03/2011 - Ludvik Jerabek - Fixed non-argument runtime bug which caused runtime exception +08/09/2011 - Ludvik Jerabek - Added code to export functions for DLL and LIB +02/15/2012 - Ludvik Jerabek - Fixed _GETOPT_THROW definition missing in implementation file + +**DISCLAIMER** +THIS MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESS OR IMPLIED, INCLUDING, BUT Not LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE, OR NON-INFRINGEMENT. SOME JURISDICTIONS DO NOT ALLOW THE +EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT +APPLY TO YOU. IN NO EVENT WILL I BE LIABLE TO ANY PARTY FOR ANY +DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES FOR ANY +USE OF THIS MATERIAL INCLUDING, WITHOUT LIMITATION, ANY LOST +PROFITS, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR OTHER DATA ON +YOUR INFORMATION HANDLING SYSTEM OR OTHERWISE, EVEN If WE ARE +EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +*/ +#ifndef __GETOPT_H_ +#define __GETOPT_H_ + +#ifdef _GETOPT_API +#undef _GETOPT_API +#endif + +#if defined(EXPORTS_GETOPT) && defined(STATIC_GETOPT) +#error "The preprocessor definitions of EXPORTS_GETOPT and STATIC_GETOPT can only be used individually" +#elif defined(STATIC_GETOPT) +#pragma message("Warning static builds of getopt violate the Lesser GNU Public License") +#define _GETOPT_API +#elif defined(EXPORTS_GETOPT) +#pragma message("Exporting getopt library") +#define _GETOPT_API __declspec(dllexport) +#else +#pragma message("Importing getopt library") +#define _GETOPT_API __declspec(dllimport) +#endif + + +#include <tchar.h> + +// Standard GNU options +#define null_argument 0 /*Argument Null*/ +#define no_argument 0 /*Argument Switch Only*/ +#define required_argument 1 /*Argument Required*/ +#define optional_argument 2 /*Argument Optional*/ + +// Shorter Versions of options +#define ARG_NULL 0 /*Argument Null*/ +#define ARG_NONE 0 /*Argument Switch Only*/ +#define ARG_REQ 1 /*Argument Required*/ +#define ARG_OPT 2 /*Argument Optional*/ + +// Change behavior for C\C++ +#ifdef __cplusplus +#define _BEGIN_EXTERN_C extern "C" { +#define _END_EXTERN_C } +#define _GETOPT_THROW throw() +#else +#define _BEGIN_EXTERN_C +#define _END_EXTERN_C +#define _GETOPT_THROW +#endif + +_BEGIN_EXTERN_C + + extern _GETOPT_API TCHAR *optarg; +extern _GETOPT_API int optind; +extern _GETOPT_API int opterr; +extern _GETOPT_API int optopt; + +struct option +{ + const TCHAR* name; + int has_arg; + int *flag; + TCHAR val; +}; + +extern _GETOPT_API int getopt(int argc, TCHAR *const *argv, const TCHAR *optstring) _GETOPT_THROW; +extern _GETOPT_API int getopt_long(int ___argc, TCHAR *const *___argv, const TCHAR *__shortopts, const struct option *__longopts, int *__longind) _GETOPT_THROW; +extern _GETOPT_API int getopt_long_only(int ___argc, TCHAR *const *___argv, const TCHAR *__shortopts, const struct option *__longopts, int *__longind) _GETOPT_THROW; +_END_EXTERN_C + +// Undefine so the macros are not included +#undef _BEGIN_EXTERN_C +#undef _END_EXTERN_C +#undef _GETOPT_THROW +#undef _GETOPT_API + +#endif // __GETOPT_H_ diff --git a/contrib/qrencode-win32/vc8/qrcode/png/libpng.lib b/contrib/qrencode-win32/vc8/qrcode/png/libpng.lib new file mode 100644 index 0000000000000000000000000000000000000000..629eab5bf51f0902783d750e5aa4a3ee0cab84b7 GIT binary patch literal 347826 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 Vb@24`_V9Fd^TVqVwvN+*0RX9k82<nO literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/libpng15.dll b/contrib/qrencode-win32/vc8/qrcode/png/libpng15.dll new file mode 100644 index 0000000000000000000000000000000000000000..994f0ad311a6d0d5b25875bca78de980bd561358 GIT binary patch literal 143360 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 F008y)fuH~Y literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/libpng15.lib b/contrib/qrencode-win32/vc8/qrcode/png/libpng15.lib new file mode 100644 index 0000000000000000000000000000000000000000..b75709d83e6a786f9f0f65043e1e2476d8306d51 GIT binary patch literal 50284 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/libpng15d.dll b/contrib/qrencode-win32/vc8/qrcode/png/libpng15d.dll new file mode 100644 index 0000000000000000000000000000000000000000..1aee49a52cb80ac45afa938beb20467d6c4cb036 GIT binary patch literal 286720 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 CLSnc8 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/libpng15d.lib b/contrib/qrencode-win32/vc8/qrcode/png/libpng15d.lib new file mode 100644 index 0000000000000000000000000000000000000000..786fb37b98fbd6a27e86a95cc9c7edf7ca842d4f GIT binary patch literal 50476 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	W9aXhI0JiOI>S#l;}^gKUn^E6q)Uc^ronLT_qO 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 Q^V>~S+d#L{phg=P04KA;t^fc4 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/libpngd.lib b/contrib/qrencode-win32/vc8/qrcode/png/libpngd.lib new file mode 100644 index 0000000000000000000000000000000000000000..2e346607480e564ea71ac3ba95807c85a7a0f438 GIT binary patch literal 967408 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%0Ag`7?1aj4ftLkA#6ZK+AQl$`G}FR1 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�qqRqWM}}bVX@$3XmDd;V6ft3XaKEtw&rAL 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�O-DmMOq9DQP8mxP{RqEd7zQLEjkPgaiCp$pylp3 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%0D5`?!Wp2Rk0NMp7Zw_zt`|rE<P6Xv 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�cE&0`1xf z1&>dI63Q`<E=XS<dJ+O?gu)e^D?uxxAgzV~S3gKBK(_i}bQr;j8FC}8vm5B(N^rjc z)Eut>cP5-c@d!3^52P^-=^B8BRzMR|Ace>`fP*p)s67Ko2%riEY3mX=aMpr?8eGSK zF0BKdqznpS22kX$2KfkDID!VSgCe0Lk3s&9zMwU%;DQoV$1Z`m1+oSZyg3V;Cgy|8 zMi~Qv_<Al#9CTDYbQK|Fq2nx&DA+p4ageBorh>=OK;7%0Aje2hzX9BWn+Vc_7?^eS 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/png.h b/contrib/qrencode-win32/vc8/qrcode/png/png.h new file mode 100644 index 0000000..29f4481 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/png/png.h @@ -0,0 +1,2280 @@ + +/* png.h - header file for PNG reference library + * + * libpng version 1.5.1 - February 3, 2011 + * Copyright (c) 1998-2011 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license (See LICENSE, below) + * + * Authors and maintainers: + * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat + * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger + * libpng versions 0.97, January 1998, through 1.5.1 - February 3, 2011: Glenn + * See also "Contributing Authors", below. + * + * Note about libpng version numbers: + * + * Due to various miscommunications, unforeseen code incompatibilities + * and occasional factors outside the authors' control, version numbering + * on the library has not always been consistent and straightforward. + * The following table summarizes matters since version 0.89c, which was + * the first widely used release: + * + * source png.h png.h shared-lib + * version string int version + * ------- ------ ----- ---------- + * 0.89c "1.0 beta 3" 0.89 89 1.0.89 + * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] + * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] + * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] + * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] + * 0.97c 0.97 97 2.0.97 + * 0.98 0.98 98 2.0.98 + * 0.99 0.99 98 2.0.99 + * 0.99a-m 0.99 99 2.0.99 + * 1.00 1.00 100 2.1.0 [100 should be 10000] + * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] + * 1.0.1 png.h string is 10001 2.1.0 + * 1.0.1a-e identical to the 10002 from here on, the shared library + * 1.0.2 source version) 10002 is 2.V where V is the source code + * 1.0.2a-b 10003 version, except as noted. + * 1.0.3 10003 + * 1.0.3a-d 10004 + * 1.0.4 10004 + * 1.0.4a-f 10005 + * 1.0.5 (+ 2 patches) 10005 + * 1.0.5a-d 10006 + * 1.0.5e-r 10100 (not source compatible) + * 1.0.5s-v 10006 (not binary compatible) + * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) + * 1.0.6d-f 10007 (still binary incompatible) + * 1.0.6g 10007 + * 1.0.6h 10007 10.6h (testing xy.z so-numbering) + * 1.0.6i 10007 10.6i + * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) + * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) + * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) + * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) + * 1.0.7 1 10007 (still compatible) + * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 + * 1.0.8rc1 1 10008 2.1.0.8rc1 + * 1.0.8 1 10008 2.1.0.8 + * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 + * 1.0.9rc1 1 10009 2.1.0.9rc1 + * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 + * 1.0.9rc2 1 10009 2.1.0.9rc2 + * 1.0.9 1 10009 2.1.0.9 + * 1.0.10beta1 1 10010 2.1.0.10beta1 + * 1.0.10rc1 1 10010 2.1.0.10rc1 + * 1.0.10 1 10010 2.1.0.10 + * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 + * 1.0.11rc1 1 10011 2.1.0.11rc1 + * 1.0.11 1 10011 2.1.0.11 + * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 + * 1.0.12rc1 2 10012 2.1.0.12rc1 + * 1.0.12 2 10012 2.1.0.12 + * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) + * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 + * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 + * 1.2.0rc1 3 10200 3.1.2.0rc1 + * 1.2.0 3 10200 3.1.2.0 + * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 + * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 + * 1.2.1 3 10201 3.1.2.1 + * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 + * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 + * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 + * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 + * 1.0.13 10 10013 10.so.0.1.0.13 + * 1.2.2 12 10202 12.so.0.1.2.2 + * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 + * 1.2.3 12 10203 12.so.0.1.2.3 + * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 + * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 + * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 + * 1.0.14 10 10014 10.so.0.1.0.14 + * 1.2.4 13 10204 12.so.0.1.2.4 + * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 + * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 + * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 + * 1.0.15 10 10015 10.so.0.1.0.15 + * 1.2.5 13 10205 12.so.0.1.2.5 + * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 + * 1.0.16 10 10016 10.so.0.1.0.16 + * 1.2.6 13 10206 12.so.0.1.2.6 + * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 + * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 + * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 + * 1.0.17 10 10017 12.so.0.1.0.17 + * 1.2.7 13 10207 12.so.0.1.2.7 + * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 + * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 + * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 + * 1.0.18 10 10018 12.so.0.1.0.18 + * 1.2.8 13 10208 12.so.0.1.2.8 + * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 + * 1.2.9beta4-11 13 10209 12.so.0.9[.0] + * 1.2.9rc1 13 10209 12.so.0.9[.0] + * 1.2.9 13 10209 12.so.0.9[.0] + * 1.2.10beta1-7 13 10210 12.so.0.10[.0] + * 1.2.10rc1-2 13 10210 12.so.0.10[.0] + * 1.2.10 13 10210 12.so.0.10[.0] + * 1.4.0beta1-5 14 10400 14.so.0.0[.0] + * 1.2.11beta1-4 13 10211 12.so.0.11[.0] + * 1.4.0beta7-8 14 10400 14.so.0.0[.0] + * 1.2.11 13 10211 12.so.0.11[.0] + * 1.2.12 13 10212 12.so.0.12[.0] + * 1.4.0beta9-14 14 10400 14.so.0.0[.0] + * 1.2.13 13 10213 12.so.0.13[.0] + * 1.4.0beta15-36 14 10400 14.so.0.0[.0] + * 1.4.0beta37-87 14 10400 14.so.14.0[.0] + * 1.4.0rc01 14 10400 14.so.14.0[.0] + * 1.4.0beta88-109 14 10400 14.so.14.0[.0] + * 1.4.0rc02-08 14 10400 14.so.14.0[.0] + * 1.4.0 14 10400 14.so.14.0[.0] + * 1.4.1beta01-03 14 10401 14.so.14.1[.0] + * 1.4.1rc01 14 10401 14.so.14.1[.0] + * 1.4.1beta04-12 14 10401 14.so.14.1[.0] + * 1.4.1 14 10401 14.so.14.1[.0] + * 1.4.2 14 10402 14.so.14.2[.0] + * 1.4.3 14 10403 14.so.14.3[.0] + * 1.4.4 14 10404 14.so.14.4[.0] + * 1.5.0beta01-58 15 10500 15.so.15.0[.0] + * 1.5.0rc01-07 15 10500 15.so.15.0[.0] + * 1.5.0 15 10500 15.so.15.0[.0] + * 1.5.1beta01-11 15 10501 15.so.15.1[.0] + * 1.5.1rc01-02 15 10501 15.so.15.1[.0] + * 1.5.1 15 10501 15.so.15.1[.0] + * + * Henceforth the source version will match the shared-library major + * and minor numbers; the shared-library major version number will be + * used for changes in backward compatibility, as it is intended. The + * PNG_LIBPNG_VER macro, which is not used within libpng but is available + * for applications, is an unsigned integer of the form xyyzz corresponding + * to the source version x.y.z (leading zeros in y and z). Beta versions + * were given the previous public release number plus a letter, until + * version 1.0.6j; from then on they were given the upcoming public + * release number plus "betaNN" or "rcN". + * + * Binary incompatibility exists only when applications make direct access + * to the info_ptr or png_ptr members through png.h, and the compiled + * application is loaded with a different version of the library. + * + * DLLNUM will change each time there are forward or backward changes + * in binary compatibility (e.g., when a new feature is added). + * + * See libpng-manual.txt or libpng.3 for more information. The PNG + * specification is available as a W3C Recommendation and as an ISO + * Specification, <http://www.w3.org/TR/2003/REC-PNG-20031110/ + */ + +/* + * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + * + * If you modify libpng you may insert additional notices immediately following + * this sentence. + * + * This code is released under the libpng license. + * + * libpng versions 1.2.6, August 15, 2004, through 1.5.1, February 3, 2011, are + * Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are + * distributed according to the same disclaimer and license as libpng-1.2.5 + * with the following individual added to the list of Contributing Authors: + * + * Cosmin Truta + * + * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are + * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are + * distributed according to the same disclaimer and license as libpng-1.0.6 + * with the following individuals added to the list of Contributing Authors: + * + * Simon-Pierre Cadieux + * Eric S. Raymond + * Gilles Vollant + * + * and with the following additions to the disclaimer: + * + * There is no warranty against interference with your enjoyment of the + * library or against infringement. There is no warranty that our + * efforts or the library will fulfill any of your particular purposes + * or needs. This library is provided with all faults, and the entire + * risk of satisfactory quality, performance, accuracy, and effort is with + * the user. + * + * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are + * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are + * distributed according to the same disclaimer and license as libpng-0.96, + * with the following individuals added to the list of Contributing Authors: + * + * Tom Lane + * Glenn Randers-Pehrson + * Willem van Schaik + * + * libpng versions 0.89, June 1996, through 0.96, May 1997, are + * Copyright (c) 1996, 1997 Andreas Dilger + * Distributed according to the same disclaimer and license as libpng-0.88, + * with the following individuals added to the list of Contributing Authors: + * + * John Bowler + * Kevin Bracey + * Sam Bushell + * Magnus Holmgren + * Greg Roelofs + * Tom Tanner + * + * libpng versions 0.5, May 1995, through 0.88, January 1996, are + * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + * + * For the purposes of this copyright and license, "Contributing Authors" + * is defined as the following set of individuals: + * + * Andreas Dilger + * Dave Martindale + * Guy Eric Schalnat + * Paul Schmidt + * Tim Wegner + * + * The PNG Reference Library is supplied "AS IS". The Contributing Authors + * and Group 42, Inc. disclaim all warranties, expressed or implied, + * including, without limitation, the warranties of merchantability and of + * fitness for any purpose. The Contributing Authors and Group 42, Inc. + * assume no liability for direct, indirect, incidental, special, exemplary, + * or consequential damages, which may result from the use of the PNG + * Reference Library, even if advised of the possibility of such damage. + * + * Permission is hereby granted to use, copy, modify, and distribute this + * source code, or portions hereof, for any purpose, without fee, subject + * to the following restrictions: + * + * 1. The origin of this source code must not be misrepresented. + * + * 2. Altered versions must be plainly marked as such and must not + * be misrepresented as being the original source. + * + * 3. This Copyright notice may not be removed or altered from + * any source or altered source distribution. + * + * The Contributing Authors and Group 42, Inc. specifically permit, without + * fee, and encourage the use of this source code as a component to + * supporting the PNG file format in commercial products. If you use this + * source code in a product, acknowledgment is not required but would be + * appreciated. + */ + +/* + * A "png_get_copyright" function is available, for convenient use in "about" + * boxes and the like: + * + * printf("%s", png_get_copyright(NULL)); + * + * Also, the PNG logo (in PNG format, of course) is supplied in the + * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + */ + +/* + * Libpng is OSI Certified Open Source Software. OSI Certified is a + * certification mark of the Open Source Initiative. + */ + +/* + * The contributing authors would like to thank all those who helped + * with testing, bug fixes, and patience. This wouldn't have been + * possible without all of you. + * + * Thanks to Frank J. T. Wojcik for helping with the documentation. + */ + +/* + * Y2K compliance in libpng: + * ========================= + * + * February 3, 2011 + * + * Since the PNG Development group is an ad-hoc body, we can't make + * an official declaration. + * + * This is your unofficial assurance that libpng from version 0.71 and + * upward through 1.5.1 are Y2K compliant. It is my belief that + * earlier versions were also Y2K compliant. + * + * Libpng only has three year fields. One is a 2-byte unsigned integer + * that will hold years up to 65535. The other two hold the date in text + * format, and will hold years up to 9999. + * + * The integer is + * "png_uint_16 year" in png_time_struct. + * + * The strings are + * "png_charp time_buffer" in png_struct and + * "near_time_buffer", which is a local character string in png.c. + * + * There are seven time-related functions: + * png.c: png_convert_to_rfc_1123() in png.c + * (formerly png_convert_to_rfc_1152() in error) + * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c + * png_convert_from_time_t() in pngwrite.c + * png_get_tIME() in pngget.c + * png_handle_tIME() in pngrutil.c, called in pngread.c + * png_set_tIME() in pngset.c + * png_write_tIME() in pngwutil.c, called in pngwrite.c + * + * All handle dates properly in a Y2K environment. The + * png_convert_from_time_t() function calls gmtime() to convert from system + * clock time, which returns (year - 1900), which we properly convert to + * the full 4-digit year. There is a possibility that applications using + * libpng are not passing 4-digit years into the png_convert_to_rfc_1123() + * function, or that they are incorrectly passing only a 2-digit year + * instead of "year - 1900" into the png_convert_from_struct_tm() function, + * but this is not under our control. The libpng documentation has always + * stated that it works with 4-digit years, and the APIs have been + * documented as such. + * + * The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned + * integer to hold the year, and can hold years as large as 65535. + * + * zlib, upon which libpng depends, is also Y2K compliant. It contains + * no date-related code. + * + * Glenn Randers-Pehrson + * libpng maintainer + * PNG Development Group + */ + +#ifndef PNG_H +#define PNG_H + +/* This is not the place to learn how to use libpng. The file libpng-manual.txt + * describes how to use libpng, and the file example.c summarizes it + * with some code on which to build. This file is useful for looking + * at the actual function definitions and structure components. + */ + +/* Version information for png.h - this should match the version in png.c */ +#define PNG_LIBPNG_VER_STRING "1.5.1" +#define PNG_HEADER_VERSION_STRING \ + " libpng version 1.5.1 - February 3, 2011\n" + +#define PNG_LIBPNG_VER_SONUM 15 +#define PNG_LIBPNG_VER_DLLNUM 15 + +/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ +#define PNG_LIBPNG_VER_MAJOR 1 +#define PNG_LIBPNG_VER_MINOR 5 +#define PNG_LIBPNG_VER_RELEASE 1 +/* This should match the numeric part of the final component of + * PNG_LIBPNG_VER_STRING, omitting any leading zero: + */ + +#define PNG_LIBPNG_VER_BUILD 0 + +/* Release Status */ +#define PNG_LIBPNG_BUILD_ALPHA 1 +#define PNG_LIBPNG_BUILD_BETA 2 +#define PNG_LIBPNG_BUILD_RC 3 +#define PNG_LIBPNG_BUILD_STABLE 4 +#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 + +/* Release-Specific Flags */ +#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with + PNG_LIBPNG_BUILD_STABLE only */ +#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with + PNG_LIBPNG_BUILD_SPECIAL */ +#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with + PNG_LIBPNG_BUILD_PRIVATE */ + +#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA + +/* Careful here. At one time, Guy wanted to use 082, but that would be octal. + * We must not include leading zeros. + * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only + * version 1.0.0 was mis-numbered 100 instead of 10000). From + * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release + */ +#define PNG_LIBPNG_VER 10501 /* 1.5.1 */ + +/* Library configuration: these options cannot be changed after + * the library has been built. + */ +#ifndef PNGLCONF_H + /* If pnglibconf.h is missing, you can + * copy scripts/pnglibconf.h.prebuilt to pnglibconf.h + */ +# include "pnglibconf.h" +#endif + +#ifndef PNG_VERSION_INFO_ONLY +/* Standard header files (not needed for the version info) */ +# ifdef PNG_SETJMP_SUPPORTED +# include <setjmp.h> +# endif + +/* Need the time information for converting tIME chunks, it + * defines struct tm: + */ +#ifdef PNG_CONVERT_tIME_SUPPORTED + /* "time.h" functions are not supported on all operating systems */ +# include <time.h> +#endif + +/* Machine specific configuration. */ +# include "pngconf.h" +#endif + +/* + * Added at libpng-1.2.8 + * + * Ref MSDN: Private as priority over Special + * VS_FF_PRIVATEBUILD File *was not* built using standard release + * procedures. If this value is given, the StringFileInfo block must + * contain a PrivateBuild string. + * + * VS_FF_SPECIALBUILD File *was* built by the original company using + * standard release procedures but is a variation of the standard + * file of the same version number. If this value is given, the + * StringFileInfo block must contain a SpecialBuild string. + */ + +#ifdef PNG_USER_PRIVATEBUILD /* From pnglibconf.h */ +# define PNG_LIBPNG_BUILD_TYPE \ + (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) +#else +# ifdef PNG_LIBPNG_SPECIALBUILD +# define PNG_LIBPNG_BUILD_TYPE \ + (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) +# else +# define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) +# endif +#endif + +#ifndef PNG_VERSION_INFO_ONLY + +/* Inhibit C++ name-mangling for libpng functions but not for system calls. */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* Version information for C files, stored in png.c. This had better match + * the version above. + */ +#define png_libpng_ver png_get_header_ver(NULL) + +/* This file is arranged in several sections: + * + * 1. Any configuration options that can be specified by for the application + * code when it is built. (Build time configuration is in pnglibconf.h) + * 2. Type definitions (base types are defined in pngconf.h), structure + * definitions. + * 3. Exported library functions. + * + * The library source code has additional files (principally pngpriv.h) that + * allow configuration of the library. + */ +/* Section 1: run time configuration + * See pnglibconf.h for build time configuration + * + * Run time configuration allows the application to choose between + * implementations of certain arithmetic APIs. The default is set + * at build time and recorded in pnglibconf.h, but it is safe to + * override these (and only these) settings. Note that this won't + * change what the library does, only application code, and the + * settings can (and probably should) be made on a per-file basis + * by setting the #defines before including png.h + * + * Use macros to read integers from PNG data or use the exported + * functions? + * PNG_USE_READ_MACROS: use the macros (see below) Note that + * the macros evaluate their argument multiple times. + * PNG_NO_USE_READ_MACROS: call the relevant library function. + * + * Use the alternative algorithm for compositing alpha samples that + * does not use division? + * PNG_READ_COMPOSITE_NODIV_SUPPORTED: use the 'no division' + * algorithm. + * PNG_NO_READ_COMPOSITE_NODIV: use the 'division' algorithm. + * + * How to handle benign errors if PNG_ALLOW_BENIGN_ERRORS is + * false? + * PNG_ALLOW_BENIGN_ERRORS: map calls to the benign error + * APIs to png_warning. + * Otherwise the calls are mapped to png_error. + */ + +/* Section 2: type definitions, including structures and compile time + * constants. + * See pngconf.h for base types that vary by machine/system + */ + +/* This triggers a compiler error in png.c, if png.c and png.h + * do not agree upon the version number. + */ +typedef char* png_libpng_version_1_5_1; + +/* Three color definitions. The order of the red, green, and blue, (and the + * exact size) is not important, although the size of the fields need to + * be png_byte or png_uint_16 (as defined below). + */ +typedef struct png_color_struct +{ + png_byte red; + png_byte green; + png_byte blue; +} png_color; +typedef png_color FAR * png_colorp; +typedef PNG_CONST png_color FAR * png_const_colorp; +typedef png_color FAR * FAR * png_colorpp; + +typedef struct png_color_16_struct +{ + png_byte index; /* used for palette files */ + png_uint_16 red; /* for use in red green blue files */ + png_uint_16 green; + png_uint_16 blue; + png_uint_16 gray; /* for use in grayscale files */ +} png_color_16; +typedef png_color_16 FAR * png_color_16p; +typedef PNG_CONST png_color_16 FAR * png_const_color_16p; +typedef png_color_16 FAR * FAR * png_color_16pp; + +typedef struct png_color_8_struct +{ + png_byte red; /* for use in red green blue files */ + png_byte green; + png_byte blue; + png_byte gray; /* for use in grayscale files */ + png_byte alpha; /* for alpha channel files */ +} png_color_8; +typedef png_color_8 FAR * png_color_8p; +typedef PNG_CONST png_color_8 FAR * png_const_color_8p; +typedef png_color_8 FAR * FAR * png_color_8pp; + +/* + * The following two structures are used for the in-core representation + * of sPLT chunks. + */ +typedef struct png_sPLT_entry_struct +{ + png_uint_16 red; + png_uint_16 green; + png_uint_16 blue; + png_uint_16 alpha; + png_uint_16 frequency; +} png_sPLT_entry; +typedef png_sPLT_entry FAR * png_sPLT_entryp; +typedef PNG_CONST png_sPLT_entry FAR * png_const_sPLT_entryp; +typedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp; + +/* When the depth of the sPLT palette is 8 bits, the color and alpha samples + * occupy the LSB of their respective members, and the MSB of each member + * is zero-filled. The frequency member always occupies the full 16 bits. + */ + +typedef struct png_sPLT_struct +{ + png_charp name; /* palette name */ + png_byte depth; /* depth of palette samples */ + png_sPLT_entryp entries; /* palette entries */ + png_int_32 nentries; /* number of palette entries */ +} png_sPLT_t; +typedef png_sPLT_t FAR * png_sPLT_tp; +typedef PNG_CONST png_sPLT_t FAR * png_const_sPLT_tp; +typedef png_sPLT_t FAR * FAR * png_sPLT_tpp; + +#ifdef PNG_TEXT_SUPPORTED +/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, + * and whether that contents is compressed or not. The "key" field + * points to a regular zero-terminated C string. The "text", "lang", and + * "lang_key" fields can be regular C strings, empty strings, or NULL pointers. + * However, the * structure returned by png_get_text() will always contain + * regular zero-terminated C strings (possibly empty), never NULL pointers, + * so they can be safely used in printf() and other string-handling functions. + */ +typedef struct png_text_struct +{ + int compression; /* compression value: + -1: tEXt, none + 0: zTXt, deflate + 1: iTXt, none + 2: iTXt, deflate */ + png_charp key; /* keyword, 1-79 character description of "text" */ + png_charp text; /* comment, may be an empty string (ie "") + or a NULL pointer */ + png_size_t text_length; /* length of the text string */ + png_size_t itxt_length; /* length of the itxt string */ + png_charp lang; /* language code, 0-79 characters + or a NULL pointer */ + png_charp lang_key; /* keyword translated UTF-8 string, 0 or more + chars or a NULL pointer */ +} png_text; +typedef png_text FAR * png_textp; +typedef PNG_CONST png_text FAR * png_const_textp; +typedef png_text FAR * FAR * png_textpp; +#endif + +/* Supported compression types for text in PNG files (tEXt, and zTXt). + * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ +#define PNG_TEXT_COMPRESSION_NONE_WR -3 +#define PNG_TEXT_COMPRESSION_zTXt_WR -2 +#define PNG_TEXT_COMPRESSION_NONE -1 +#define PNG_TEXT_COMPRESSION_zTXt 0 +#define PNG_ITXT_COMPRESSION_NONE 1 +#define PNG_ITXT_COMPRESSION_zTXt 2 +#define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ + +/* png_time is a way to hold the time in an machine independent way. + * Two conversions are provided, both from time_t and struct tm. There + * is no portable way to convert to either of these structures, as far + * as I know. If you know of a portable way, send it to me. As a side + * note - PNG has always been Year 2000 compliant! + */ +typedef struct png_time_struct +{ + png_uint_16 year; /* full year, as in, 1995 */ + png_byte month; /* month of year, 1 - 12 */ + png_byte day; /* day of month, 1 - 31 */ + png_byte hour; /* hour of day, 0 - 23 */ + png_byte minute; /* minute of hour, 0 - 59 */ + png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ +} png_time; +typedef png_time FAR * png_timep; +typedef PNG_CONST png_time FAR * png_const_timep; +typedef png_time FAR * FAR * png_timepp; + +#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ + defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) +/* png_unknown_chunk is a structure to hold queued chunks for which there is + * no specific support. The idea is that we can use this to queue + * up private chunks for output even though the library doesn't actually + * know about their semantics. + */ +typedef struct png_unknown_chunk_t +{ + png_byte name[5]; + png_byte *data; + png_size_t size; + + /* libpng-using applications should NOT directly modify this byte. */ + png_byte location; /* mode of operation at read time */ +} +png_unknown_chunk; +typedef png_unknown_chunk FAR * png_unknown_chunkp; +typedef PNG_CONST png_unknown_chunk FAR * png_const_unknown_chunkp; +typedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp; +#endif + +typedef struct png_info_def png_info; +typedef png_info FAR * png_infop; +typedef PNG_CONST png_info FAR * png_const_infop; +typedef png_info FAR * FAR * png_infopp; + +/* Maximum positive integer used in PNG is (2^31)-1 */ +#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) +#define PNG_UINT_32_MAX ((png_uint_32)(-1)) +#define PNG_SIZE_MAX ((png_size_t)(-1)) + +/* These are constants for fixed point values encoded in the + * PNG specification manner (x100000) + */ +#define PNG_FP_1 100000 +#define PNG_FP_HALF 50000 + +/* These describe the color_type field in png_info. */ +/* color type masks */ +#define PNG_COLOR_MASK_PALETTE 1 +#define PNG_COLOR_MASK_COLOR 2 +#define PNG_COLOR_MASK_ALPHA 4 + +/* color types. Note that not all combinations are legal */ +#define PNG_COLOR_TYPE_GRAY 0 +#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) +#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) +#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) +#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) +/* aliases */ +#define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA +#define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA + +/* This is for compression type. PNG 1.0-1.2 only define the single type. */ +#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ +#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE + +/* This is for filter type. PNG 1.0-1.2 only define the single type. */ +#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ +#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */ +#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE + +/* These are for the interlacing type. These values should NOT be changed. */ +#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ +#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ +#define PNG_INTERLACE_LAST 2 /* Not a valid value */ + +/* These are for the oFFs chunk. These values should NOT be changed. */ +#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ +#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ +#define PNG_OFFSET_LAST 2 /* Not a valid value */ + +/* These are for the pCAL chunk. These values should NOT be changed. */ +#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ +#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ +#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ +#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ +#define PNG_EQUATION_LAST 4 /* Not a valid value */ + +/* These are for the sCAL chunk. These values should NOT be changed. */ +#define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */ +#define PNG_SCALE_METER 1 /* meters per pixel */ +#define PNG_SCALE_RADIAN 2 /* radians per pixel */ +#define PNG_SCALE_LAST 3 /* Not a valid value */ + +/* These are for the pHYs chunk. These values should NOT be changed. */ +#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ +#define PNG_RESOLUTION_METER 1 /* pixels/meter */ +#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ + +/* These are for the sRGB chunk. These values should NOT be changed. */ +#define PNG_sRGB_INTENT_PERCEPTUAL 0 +#define PNG_sRGB_INTENT_RELATIVE 1 +#define PNG_sRGB_INTENT_SATURATION 2 +#define PNG_sRGB_INTENT_ABSOLUTE 3 +#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ + +/* This is for text chunks */ +#define PNG_KEYWORD_MAX_LENGTH 79 + +/* Maximum number of entries in PLTE/sPLT/tRNS arrays */ +#define PNG_MAX_PALETTE_LENGTH 256 + +/* These determine if an ancillary chunk's data has been successfully read + * from the PNG header, or if the application has filled in the corresponding + * data in the info_struct to be written into the output file. The values + * of the PNG_INFO_<chunk> defines should NOT be changed. + */ +#define PNG_INFO_gAMA 0x0001 +#define PNG_INFO_sBIT 0x0002 +#define PNG_INFO_cHRM 0x0004 +#define PNG_INFO_PLTE 0x0008 +#define PNG_INFO_tRNS 0x0010 +#define PNG_INFO_bKGD 0x0020 +#define PNG_INFO_hIST 0x0040 +#define PNG_INFO_pHYs 0x0080 +#define PNG_INFO_oFFs 0x0100 +#define PNG_INFO_tIME 0x0200 +#define PNG_INFO_pCAL 0x0400 +#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ +#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ +#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ +#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ +#define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ + +/* This is used for the transformation routines, as some of them + * change these values for the row. It also should enable using + * the routines for other purposes. + */ +typedef struct png_row_info_struct +{ + png_uint_32 width; /* width of row */ + png_size_t rowbytes; /* number of bytes in row */ + png_byte color_type; /* color type of row */ + png_byte bit_depth; /* bit depth of row */ + png_byte channels; /* number of channels (1, 2, 3, or 4) */ + png_byte pixel_depth; /* bits per pixel (depth * channels) */ +} png_row_info; + +typedef png_row_info FAR * png_row_infop; +typedef png_row_info FAR * FAR * png_row_infopp; + +/* These are the function types for the I/O functions and for the functions + * that allow the user to override the default I/O functions with his or her + * own. The png_error_ptr type should match that of user-supplied warning + * and error functions, while the png_rw_ptr type should match that of the + * user read/write data functions. Note that the 'write' function must not + * modify the buffer it is passed. The 'read' function, on the other hand, is + * expected to return the read data in the buffer. + */ +typedef struct png_struct_def png_struct; +typedef PNG_CONST png_struct FAR * png_const_structp; +typedef png_struct FAR * png_structp; + +typedef PNG_CALLBACK(void, *png_error_ptr, (png_structp, png_const_charp), ); +typedef PNG_CALLBACK(void, *png_rw_ptr, (png_structp, png_bytep, png_size_t), ); +typedef PNG_CALLBACK(void, *png_flush_ptr, (png_structp), ); +typedef PNG_CALLBACK(void, *png_read_status_ptr, (png_structp, png_uint_32, + int), ); +typedef PNG_CALLBACK(void, *png_write_status_ptr, (png_structp, png_uint_32, + int), ); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +typedef PNG_CALLBACK(void, *png_progressive_info_ptr, + (png_structp, png_infop), ); +typedef PNG_CALLBACK(void, *png_progressive_end_ptr, + (png_structp, png_infop), ); +typedef PNG_CALLBACK(void, *png_progressive_row_ptr, + (png_structp, png_bytep, png_uint_32, int), ); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) +typedef PNG_CALLBACK(void, *png_user_transform_ptr, + (png_structp, png_row_infop, png_bytep), ); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +typedef PNG_CALLBACK(int, *png_user_chunk_ptr, (png_structp, + png_unknown_chunkp), ); +#endif +#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED +typedef PNG_CALLBACK(void, *png_unknown_chunk_ptr, (png_structp), ); +#endif + +#ifdef PNG_SETJMP_SUPPORTED +/* This must match the function definition in <setjmp.h>, and the + * application must include this before png.h to obtain the definition + * of jmp_buf. The function is required to be PNG_NORETURN. (Note that + * PNG_PTR_NORETURN is used here because current versions of the Microsoft + * C compiler do not support the PNG_NORETURN attribute on a pointer.) + * + * If you get a type warning from the compiler when linking against this line + * then your compiler has 'longjmp' that does not match the requirements of the + * compiler that built libpng. You will have to write a wrapper function for + * your compiler's longjmp and call png_set_longjmp_fn directly (not via the + * png_jmpbuf macro.) + * + * If you get a warning here while building the library you will need to make + * changes to ensure that pnglibconf.h records the calling convention used by + * your compiler. This may be very difficult - try using a different compiler + * to build the library! + */ +typedef PNG_FUNCTION(void, (PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), + PNG_PTR_NORETURN); +#endif + +/* Transform masks for the high-level interface */ +#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ +#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ +#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ +#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ +#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ +#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ +#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ +#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ +#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ +#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ +#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ +#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ +#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ +/* Added to libpng-1.2.34 */ +#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER +#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ +/* Added to libpng-1.4.0 */ +#define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ + +/* Flags for MNG supported features */ +#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 +#define PNG_FLAG_MNG_FILTER_64 0x04 +#define PNG_ALL_MNG_FEATURES 0x05 + +/* NOTE: prior to 1.5 these functions had no 'API' style declaration, + * this allowed the zlib default functions to be used on Windows + * platforms. In 1.5 the zlib default malloc (which just calls malloc and + * ignores the first argument) should be completely compatible with the + * following. + */ +typedef PNG_CALLBACK(png_voidp, *png_malloc_ptr, (png_structp, + png_alloc_size_t), ); +typedef PNG_CALLBACK(void, *png_free_ptr, (png_structp, png_voidp), ); + +typedef png_struct FAR * FAR * png_structpp; + +/* Section 3: exported functions + * Here are the function definitions most commonly used. This is not + * the place to find out how to use libpng. See libpng-manual.txt for the + * full explanation, see example.c for the summary. This just provides + * a simple one line description of the use of each function. + * + * The PNG_EXPORT() and PNG_EXPORTA() macros used below are defined in + * pngconf.h and in the *.dfn files in the scripts directory. + * + * PNG_EXPORT(ordinal, type, name, (args)); + * + * ordinal: ordinal that is used while building + * *.def files. The ordinal value is only + * relevant when preprocessing png.h with + * the *.dfn files for building symbol table + * entries, and are removed by pngconf.h. + * type: return type of the function + * name: function name + * args: function arguments, with types + * + * When we wish to append attributes to a function prototype we use + * the PNG_EXPORTA() macro instead. + * + * PNG_EXPORTA(ordinal, type, name, (args), attributes); + * + * ordinal, type, name, and args: same as in PNG_EXPORT(). + * attributes: function attributes + */ + +/* Returns the version number of the library */ +PNG_EXPORT(1, png_uint_32, png_access_version_number, (void)); + +/* Tell lib we have already handled the first <num_bytes> magic bytes. + * Handling more than 8 bytes from the beginning of the file is an error. + */ +PNG_EXPORT(2, void, png_set_sig_bytes, (png_structp png_ptr, int num_bytes)); + +/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a + * PNG file. Returns zero if the supplied bytes match the 8-byte PNG + * signature, and non-zero otherwise. Having num_to_check == 0 or + * start > 7 will always fail (ie return non-zero). + */ +PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, png_size_t start, + png_size_t num_to_check)); + +/* Simple signature checking function. This is the same as calling + * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). + */ +#define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) + +/* Allocate and initialize png_ptr struct for reading, and any other memory. */ +PNG_EXPORTA(4, png_structp, png_create_read_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn), + PNG_ALLOCATED); + +/* Allocate and initialize png_ptr struct for writing, and any other memory */ +PNG_EXPORTA(5, png_structp, png_create_write_struct, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn), + PNG_ALLOCATED); + +PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size, + (png_const_structp png_ptr)); + +PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structp png_ptr, + png_size_t size)); + +/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp + * match up. + */ +#ifdef PNG_SETJMP_SUPPORTED +/* This function returns the jmp_buf built in to *png_ptr. It must be + * supplied with an appropriate 'longjmp' function to use on that jmp_buf + * unless the default error function is overridden in which case NULL is + * acceptable. The size of the jmp_buf is checked against the actual size + * allocated by the library - the call will return NULL on a mismatch + * indicating an ABI mismatch. + */ +PNG_EXPORT(8, jmp_buf*, png_set_longjmp_fn, (png_structp png_ptr, + png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); +# define png_jmpbuf(png_ptr) \ + (*png_set_longjmp_fn((png_ptr), longjmp, sizeof (jmp_buf))) +#else +# define png_jmpbuf(png_ptr) \ + (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) +#endif +/* This function should be used by libpng applications in place of + * longjmp(png_ptr->jmpbuf, val). If longjmp_fn() has been set, it + * will use it; otherwise it will call PNG_ABORT(). This function was + * added in libpng-1.5.0. + */ +PNG_EXPORTA(9, void, png_longjmp, (png_structp png_ptr, int val), + PNG_NORETURN); + +#ifdef PNG_READ_SUPPORTED +/* Reset the compression stream */ +PNG_EXPORT(10, int, png_reset_zstream, (png_structp png_ptr)); +#endif + +/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORTA(11, png_structp, png_create_read_struct_2, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), + PNG_ALLOCATED); +PNG_EXPORTA(12, png_structp, png_create_write_struct_2, + (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, + png_error_ptr warn_fn, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn), + PNG_ALLOCATED); +#endif + +/* Write the PNG file signature. */ +PNG_EXPORT(13, void, png_write_sig, (png_structp png_ptr)); + +/* Write a PNG chunk - size, type, (optional) data, CRC. */ +PNG_EXPORT(14, void, png_write_chunk, (png_structp png_ptr, png_const_bytep + chunk_name, png_const_bytep data, png_size_t length)); + +/* Write the start of a PNG chunk - length and chunk name. */ +PNG_EXPORT(15, void, png_write_chunk_start, (png_structp png_ptr, + png_const_bytep chunk_name, png_uint_32 length)); + +/* Write the data of a PNG chunk started with png_write_chunk_start(). */ +PNG_EXPORT(16, void, png_write_chunk_data, (png_structp png_ptr, + png_const_bytep data, png_size_t length)); + +/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ +PNG_EXPORT(17, void, png_write_chunk_end, (png_structp png_ptr)); + +/* Allocate and initialize the info structure */ +PNG_EXPORTA(18, png_infop, png_create_info_struct, (png_structp png_ptr), + PNG_ALLOCATED); + +PNG_EXPORT(19, void, png_info_init_3, (png_infopp info_ptr, + png_size_t png_info_struct_size)); + +/* Writes all the PNG information before the image. */ +PNG_EXPORT(20, void, png_write_info_before_PLTE, + (png_structp png_ptr, png_infop info_ptr)); +PNG_EXPORT(21, void, png_write_info, + (png_structp png_ptr, png_infop info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the information before the actual image data. */ +PNG_EXPORT(22, void, png_read_info, + (png_structp png_ptr, png_infop info_ptr)); +#endif + +#ifdef PNG_TIME_RFC1123_SUPPORTED +PNG_EXPORT(23, png_const_charp, png_convert_to_rfc1123, + (png_structp png_ptr, + png_const_timep ptime)); +#endif + +#ifdef PNG_CONVERT_tIME_SUPPORTED +/* Convert from a struct tm to png_time */ +PNG_EXPORT(24, void, png_convert_from_struct_tm, (png_timep ptime, + PNG_CONST struct tm FAR * ttime)); + +/* Convert from time_t to png_time. Uses gmtime() */ +PNG_EXPORT(25, void, png_convert_from_time_t, + (png_timep ptime, time_t ttime)); +#endif /* PNG_CONVERT_tIME_SUPPORTED */ + +#ifdef PNG_READ_EXPAND_SUPPORTED +/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ +PNG_EXPORT(26, void, png_set_expand, (png_structp png_ptr)); +PNG_EXPORT(27, void, png_set_expand_gray_1_2_4_to_8, (png_structp png_ptr)); +PNG_EXPORT(28, void, png_set_palette_to_rgb, (png_structp png_ptr)); +PNG_EXPORT(29, void, png_set_tRNS_to_alpha, (png_structp png_ptr)); +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +/* Use blue, green, red order for pixels. */ +PNG_EXPORT(30, void, png_set_bgr, (png_structp png_ptr)); +#endif + +#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED +/* Expand the grayscale to 24-bit RGB if necessary. */ +PNG_EXPORT(31, void, png_set_gray_to_rgb, (png_structp png_ptr)); +#endif + +#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED +/* Reduce RGB to grayscale. */ +PNG_FP_EXPORT(32, void, png_set_rgb_to_gray, (png_structp png_ptr, + int error_action, double red, double green)); +PNG_FIXED_EXPORT(33, void, png_set_rgb_to_gray_fixed, (png_structp png_ptr, + int error_action, png_fixed_point red, png_fixed_point green)); + +PNG_EXPORT(34, png_byte, png_get_rgb_to_gray_status, (png_const_structp + png_ptr)); +#endif + +PNG_EXPORT(35, void, png_build_grayscale_palette, (int bit_depth, + png_colorp palette)); + +#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED +PNG_EXPORT(36, void, png_set_strip_alpha, (png_structp png_ptr)); +#endif + +#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) +PNG_EXPORT(37, void, png_set_swap_alpha, (png_structp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) +PNG_EXPORT(38, void, png_set_invert_alpha, (png_structp png_ptr)); +#endif + +#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) +/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(39, void, png_set_filler, (png_structp png_ptr, png_uint_32 filler, + int flags)); +/* The values of the PNG_FILLER_ defines should NOT be changed */ +# define PNG_FILLER_BEFORE 0 +# define PNG_FILLER_AFTER 1 +/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ +PNG_EXPORT(40, void, png_set_add_alpha, + (png_structp png_ptr, png_uint_32 filler, + int flags)); +#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ + +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +/* Swap bytes in 16-bit depth files. */ +PNG_EXPORT(41, void, png_set_swap, (png_structp png_ptr)); +#endif + +#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) +/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ +PNG_EXPORT(42, void, png_set_packing, (png_structp png_ptr)); +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ + defined(PNG_WRITE_PACKSWAP_SUPPORTED) +/* Swap packing order of pixels in bytes. */ +PNG_EXPORT(43, void, png_set_packswap, (png_structp png_ptr)); +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) +/* Converts files to legal bit depths. */ +PNG_EXPORT(44, void, png_set_shift, (png_structp png_ptr, png_const_color_8p + true_bits)); +#endif + +#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ + defined(PNG_WRITE_INTERLACING_SUPPORTED) +/* Have the code handle the interlacing. Returns the number of passes. + * MUST be called before png_read_update_info or png_start_read_image, + * otherwise it will not have the desired effect. Note that it is still + * necessary to call png_read_row or png_read_rows png_get_image_height + * times for each pass. +*/ +PNG_EXPORT(45, int, png_set_interlace_handling, (png_structp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +/* Invert monochrome files */ +PNG_EXPORT(46, void, png_set_invert_mono, (png_structp png_ptr)); +#endif + +#ifdef PNG_READ_BACKGROUND_SUPPORTED +/* Handle alpha and tRNS by replacing with a background color. */ +PNG_FP_EXPORT(47, void, png_set_background, (png_structp png_ptr, + png_const_color_16p background_color, int background_gamma_code, + int need_expand, double background_gamma)); +PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structp png_ptr, + png_const_color_16p background_color, int background_gamma_code, + int need_expand, png_fixed_point background_gamma)); +#endif +#ifdef PNG_READ_BACKGROUND_SUPPORTED +# define PNG_BACKGROUND_GAMMA_UNKNOWN 0 +# define PNG_BACKGROUND_GAMMA_SCREEN 1 +# define PNG_BACKGROUND_GAMMA_FILE 2 +# define PNG_BACKGROUND_GAMMA_UNIQUE 3 +#endif + +#ifdef PNG_READ_16_TO_8_SUPPORTED +/* Strip the second byte of information from a 16-bit depth file. */ +PNG_EXPORT(48, void, png_set_strip_16, (png_structp png_ptr)); +#endif + +#ifdef PNG_READ_QUANTIZE_SUPPORTED +/* Turn on quantizing, and reduce the palette to the number of colors + * available. + */ +PNG_EXPORT(49, void, png_set_quantize, + (png_structp png_ptr, png_colorp palette, + int num_palette, int maximum_colors, png_const_uint_16p histogram, + int full_quantize)); +#endif + +#ifdef PNG_READ_GAMMA_SUPPORTED +/* The threshold on gamma processing is configurable but hard-wired into the + * library. The following is the floating point variant. + */ +#define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) + +/* Handle gamma correction. Screen_gamma=(display_exponent) */ +PNG_FP_EXPORT(50, void, png_set_gamma, + (png_structp png_ptr, double screen_gamma, + double default_file_gamma)); +PNG_FIXED_EXPORT(208, void, png_set_gamma_fixed, (png_structp png_ptr, + png_fixed_point screen_gamma, png_fixed_point default_file_gamma)); +#endif + +#ifdef PNG_WRITE_FLUSH_SUPPORTED +/* Set how many lines between output flushes - 0 for no flushing */ +PNG_EXPORT(51, void, png_set_flush, (png_structp png_ptr, int nrows)); +/* Flush the current PNG output buffer */ +PNG_EXPORT(52, void, png_write_flush, (png_structp png_ptr)); +#endif + +/* Optional update palette with requested transformations */ +PNG_EXPORT(53, void, png_start_read_image, (png_structp png_ptr)); + +/* Optional call to update the users info structure */ +PNG_EXPORT(54, void, png_read_update_info, + (png_structp png_ptr, png_infop info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read one or more rows of image data. */ +PNG_EXPORT(55, void, png_read_rows, (png_structp png_ptr, png_bytepp row, + png_bytepp display_row, png_uint_32 num_rows)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read a row of data. */ +PNG_EXPORT(56, void, png_read_row, (png_structp png_ptr, png_bytep row, + png_bytep display_row)); +#endif + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the whole image into memory at once. */ +PNG_EXPORT(57, void, png_read_image, (png_structp png_ptr, png_bytepp image)); +#endif + +/* Write a row of image data */ +PNG_EXPORT(58, void, png_write_row, + (png_structp png_ptr, png_const_bytep row)); + +/* Write a few rows of image data: (*row) is not written; however, the type + * is declared as writeable to maintain compatibility with previous versions + * of libpng and to allow the 'display_row' array from read_rows to be passed + * unchanged to write_rows. + */ +PNG_EXPORT(59, void, png_write_rows, (png_structp png_ptr, png_bytepp row, + png_uint_32 num_rows)); + +/* Write the image data */ +PNG_EXPORT(60, void, png_write_image, + (png_structp png_ptr, png_bytepp image)); + +/* Write the end of the PNG file. */ +PNG_EXPORT(61, void, png_write_end, + (png_structp png_ptr, png_infop info_ptr)); + +#ifdef PNG_SEQUENTIAL_READ_SUPPORTED +/* Read the end of the PNG file. */ +PNG_EXPORT(62, void, png_read_end, (png_structp png_ptr, png_infop info_ptr)); +#endif + +/* Free any memory associated with the png_info_struct */ +PNG_EXPORT(63, void, png_destroy_info_struct, (png_structp png_ptr, + png_infopp info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(64, void, png_destroy_read_struct, (png_structpp png_ptr_ptr, + png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); + +/* Free any memory associated with the png_struct and the png_info_structs */ +PNG_EXPORT(65, void, png_destroy_write_struct, (png_structpp png_ptr_ptr, + png_infopp info_ptr_ptr)); + +/* Set the libpng method of handling chunk CRC errors */ +PNG_EXPORT(66, void, png_set_crc_action, + (png_structp png_ptr, int crit_action, int ancil_action)); + +/* Values for png_set_crc_action() say how to handle CRC errors in + * ancillary and critical chunks, and whether to use the data contained + * therein. Note that it is impossible to "discard" data in a critical + * chunk. For versions prior to 0.90, the action was always error/quit, + * whereas in version 0.90 and later, the action for CRC errors in ancillary + * chunks is warn/discard. These values should NOT be changed. + * + * value action:critical action:ancillary + */ +#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ +#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ +#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ +#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ +#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ +#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ + +/* These functions give the user control over the scan-line filtering in + * libpng and the compression methods used by zlib. These functions are + * mainly useful for testing, as the defaults should work with most users. + * Those users who are tight on memory or want faster performance at the + * expense of compression can modify them. See the compression library + * header file (zlib.h) for an explination of the compression functions. + */ + +/* Set the filtering method(s) used by libpng. Currently, the only valid + * value for "method" is 0. + */ +PNG_EXPORT(67, void, png_set_filter, + (png_structp png_ptr, int method, int filters)); + +/* Flags for png_set_filter() to say which filters to use. The flags + * are chosen so that they don't conflict with real filter types + * below, in case they are supplied instead of the #defined constants. + * These values should NOT be changed. + */ +#define PNG_NO_FILTERS 0x00 +#define PNG_FILTER_NONE 0x08 +#define PNG_FILTER_SUB 0x10 +#define PNG_FILTER_UP 0x20 +#define PNG_FILTER_AVG 0x40 +#define PNG_FILTER_PAETH 0x80 +#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ + PNG_FILTER_AVG | PNG_FILTER_PAETH) + +/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. + * These defines should NOT be changed. + */ +#define PNG_FILTER_VALUE_NONE 0 +#define PNG_FILTER_VALUE_SUB 1 +#define PNG_FILTER_VALUE_UP 2 +#define PNG_FILTER_VALUE_AVG 3 +#define PNG_FILTER_VALUE_PAETH 4 +#define PNG_FILTER_VALUE_LAST 5 + +#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */ +/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ + * defines, either the default (minimum-sum-of-absolute-differences), or + * the experimental method (weighted-minimum-sum-of-absolute-differences). + * + * Weights are factors >= 1.0, indicating how important it is to keep the + * filter type consistent between rows. Larger numbers mean the current + * filter is that many times as likely to be the same as the "num_weights" + * previous filters. This is cumulative for each previous row with a weight. + * There needs to be "num_weights" values in "filter_weights", or it can be + * NULL if the weights aren't being specified. Weights have no influence on + * the selection of the first row filter. Well chosen weights can (in theory) + * improve the compression for a given image. + * + * Costs are factors >= 1.0 indicating the relative decoding costs of a + * filter type. Higher costs indicate more decoding expense, and are + * therefore less likely to be selected over a filter with lower computational + * costs. There needs to be a value in "filter_costs" for each valid filter + * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't + * setting the costs. Costs try to improve the speed of decompression without + * unduly increasing the compressed image size. + * + * A negative weight or cost indicates the default value is to be used, and + * values in the range [0.0, 1.0) indicate the value is to remain unchanged. + * The default values for both weights and costs are currently 1.0, but may + * change if good general weighting/cost heuristics can be found. If both + * the weights and costs are set to 1.0, this degenerates the WEIGHTED method + * to the UNWEIGHTED method, but with added encoding time/computation. + */ +PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structp png_ptr, + int heuristic_method, int num_weights, png_const_doublep filter_weights, + png_const_doublep filter_costs)); +PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, + (png_structp png_ptr, + int heuristic_method, int num_weights, png_const_fixed_point_p + filter_weights, png_const_fixed_point_p filter_costs)); +#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ + +/* Heuristic used for row filter selection. These defines should NOT be + * changed. + */ +#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ +#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ +#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ +#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ + +/* Set the library compression level. Currently, valid values range from + * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 + * (0 - no compression, 9 - "maximal" compression). Note that tests have + * shown that zlib compression levels 3-6 usually perform as well as level 9 + * for PNG images, and do considerably fewer caclulations. In the future, + * these values may not correspond directly to the zlib compression levels. + */ +PNG_EXPORT(69, void, png_set_compression_level, + (png_structp png_ptr, int level)); + +PNG_EXPORT(70, void, png_set_compression_mem_level, (png_structp png_ptr, + int mem_level)); + +PNG_EXPORT(71, void, png_set_compression_strategy, (png_structp png_ptr, + int strategy)); + +PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structp png_ptr, + int window_bits)); + +PNG_EXPORT(73, void, png_set_compression_method, (png_structp png_ptr, + int method)); + +/* These next functions are called for input/output, memory, and error + * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, + * and call standard C I/O routines such as fread(), fwrite(), and + * fprintf(). These functions can be made to use other I/O routines + * at run time for those applications that need to handle I/O in a + * different manner by calling png_set_???_fn(). See libpng-manual.txt for + * more information. + */ + +#ifdef PNG_STDIO_SUPPORTED +/* Initialize the input/output for the PNG file to the default functions. */ +PNG_EXPORT(74, void, png_init_io, (png_structp png_ptr, png_FILE_p fp)); +#endif + +/* Replace the (error and abort), and warning functions with user + * supplied functions. If no messages are to be printed you must still + * write and use replacement functions. The replacement error_fn should + * still do a longjmp to the last setjmp location if you are using this + * method of error handling. If error_fn or warning_fn is NULL, the + * default function will be used. + */ + +PNG_EXPORT(75, void, png_set_error_fn, + (png_structp png_ptr, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warning_fn)); + +/* Return the user pointer associated with the error functions */ +PNG_EXPORT(76, png_voidp, png_get_error_ptr, (png_const_structp png_ptr)); + +/* Replace the default data output functions with a user supplied one(s). + * If buffered output is not used, then output_flush_fn can be set to NULL. + * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time + * output_flush_fn will be ignored (and thus can be NULL). + * It is probably a mistake to use NULL for output_flush_fn if + * write_data_fn is not also NULL unless you have built libpng with + * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's + * default flush function, which uses the standard *FILE structure, will + * be used. + */ +PNG_EXPORT(77, void, png_set_write_fn, (png_structp png_ptr, png_voidp io_ptr, + png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); + +/* Replace the default data input function with a user supplied one. */ +PNG_EXPORT(78, void, png_set_read_fn, (png_structp png_ptr, png_voidp io_ptr, + png_rw_ptr read_data_fn)); + +/* Return the user pointer associated with the I/O functions */ +PNG_EXPORT(79, png_voidp, png_get_io_ptr, (png_structp png_ptr)); + +PNG_EXPORT(80, void, png_set_read_status_fn, (png_structp png_ptr, + png_read_status_ptr read_row_fn)); + +PNG_EXPORT(81, void, png_set_write_status_fn, (png_structp png_ptr, + png_write_status_ptr write_row_fn)); + +#ifdef PNG_USER_MEM_SUPPORTED +/* Replace the default memory allocation functions with user supplied one(s). */ +PNG_EXPORT(82, void, png_set_mem_fn, (png_structp png_ptr, png_voidp mem_ptr, + png_malloc_ptr malloc_fn, png_free_ptr free_fn)); +/* Return the user pointer associated with the memory functions */ +PNG_EXPORT(83, png_voidp, png_get_mem_ptr, (png_const_structp png_ptr)); +#endif + +#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(84, void, png_set_read_user_transform_fn, (png_structp png_ptr, + png_user_transform_ptr read_user_transform_fn)); +#endif + +#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED +PNG_EXPORT(85, void, png_set_write_user_transform_fn, (png_structp png_ptr, + png_user_transform_ptr write_user_transform_fn)); +#endif + +#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED +PNG_EXPORT(86, void, png_set_user_transform_info, (png_structp png_ptr, + png_voidp user_transform_ptr, int user_transform_depth, + int user_transform_channels)); +/* Return the user pointer associated with the user transform functions */ +PNG_EXPORT(87, png_voidp, png_get_user_transform_ptr, + (png_const_structp png_ptr)); +#endif + +#ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED +/* Return information about the row currently being processed. Note that these + * APIs do not fail but will return unexpected results if called outside a user + * transform callback. Also note that when transforming an interlaced image the + * row number is still the row in the final, de-interlaced, image but the row + * only contains the data of the current pass - consult png_row_info for the + * actual width of the row! + */ +PNG_EXPORT(217, png_uint_32, png_get_current_row_number, (png_const_structp)); +PNG_EXPORT(218, png_byte, png_get_current_pass_number, (png_const_structp)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +PNG_EXPORT(88, void, png_set_read_user_chunk_fn, (png_structp png_ptr, + png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); +PNG_EXPORT(89, png_voidp, png_get_user_chunk_ptr, (png_const_structp png_ptr)); +#endif + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +/* Sets the function callbacks for the push reader, and a pointer to a + * user-defined structure available to the callback functions. + */ +PNG_EXPORT(90, void, png_set_progressive_read_fn, (png_structp png_ptr, + png_voidp progressive_ptr, png_progressive_info_ptr info_fn, + png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn)); + +/* Returns the user pointer associated with the push read functions */ +PNG_EXPORT(91, png_voidp, png_get_progressive_ptr, (png_const_structp png_ptr)); + +/* Function to be called when data becomes available */ +PNG_EXPORT(92, void, png_process_data, + (png_structp png_ptr, png_infop info_ptr, + png_bytep buffer, png_size_t buffer_size)); + +/* A function which may be called *only* within png_process_data to stop the + * processing of any more data. The function returns the number of bytes + * remaining, excluding any that libpng has cached internally. A subsequent + * call to png_process_data must supply these bytes again. If the argument + * 'save' is set to true the routine will first save all the pending data and + * will always return 0. + */ +PNG_EXPORT(219, png_size_t, png_process_data_pause, (png_structp, int save)); + +/* A function which may be called *only* outside (after) a call to + * png_process_data. It returns the number of bytes of data to skip in the + * input. Normally it will return 0, but if it returns a non-zero value the + * application must skip than number of bytes of input data and pass the + * following data to the next call to png_process_data. + */ +PNG_EXPORT(220, png_uint_32, png_process_data_skip, (png_structp)); + +/* Function that combines rows. 'new_row' is a flag that should come from + * the callback and be non-NULL if anything needs to be done; the library + * stores its own version of the new data internally and ignores the passed + * in value. + */ +PNG_EXPORT(93, void, png_progressive_combine_row, (png_structp png_ptr, + png_bytep old_row, png_const_bytep new_row)); +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +PNG_EXPORTA(94, png_voidp, png_malloc, + (png_structp png_ptr, png_alloc_size_t size), + PNG_ALLOCATED); +/* Added at libpng version 1.4.0 */ +PNG_EXPORTA(95, png_voidp, png_calloc, + (png_structp png_ptr, png_alloc_size_t size), + PNG_ALLOCATED); + +/* Added at libpng version 1.2.4 */ +PNG_EXPORTA(96, png_voidp, png_malloc_warn, (png_structp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); + +/* Frees a pointer allocated by png_malloc() */ +PNG_EXPORT(97, void, png_free, (png_structp png_ptr, png_voidp ptr)); + +/* Free data that was allocated internally */ +PNG_EXPORT(98, void, png_free_data, + (png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num)); + +/* Reassign responsibility for freeing existing data, whether allocated + * by libpng or by the application */ +PNG_EXPORT(99, void, png_data_freer, + (png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask)); + +/* Assignments for png_data_freer */ +#define PNG_DESTROY_WILL_FREE_DATA 1 +#define PNG_SET_WILL_FREE_DATA 1 +#define PNG_USER_WILL_FREE_DATA 2 +/* Flags for png_ptr->free_me and info_ptr->free_me */ +#define PNG_FREE_HIST 0x0008 +#define PNG_FREE_ICCP 0x0010 +#define PNG_FREE_SPLT 0x0020 +#define PNG_FREE_ROWS 0x0040 +#define PNG_FREE_PCAL 0x0080 +#define PNG_FREE_SCAL 0x0100 +#define PNG_FREE_UNKN 0x0200 +#define PNG_FREE_LIST 0x0400 +#define PNG_FREE_PLTE 0x1000 +#define PNG_FREE_TRNS 0x2000 +#define PNG_FREE_TEXT 0x4000 +#define PNG_FREE_ALL 0x7fff +#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ + +#ifdef PNG_USER_MEM_SUPPORTED +PNG_EXPORTA(100, png_voidp, png_malloc_default, (png_structp png_ptr, + png_alloc_size_t size), PNG_ALLOCATED); +PNG_EXPORT(101, void, png_free_default, (png_structp png_ptr, png_voidp ptr)); +#endif + +#ifdef PNG_ERROR_TEXT_SUPPORTED +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORTA(102, void, png_error, + (png_structp png_ptr, png_const_charp error_message), + PNG_NORETURN); + +/* The same, but the chunk name is prepended to the error string. */ +PNG_EXPORTA(103, void, png_chunk_error, (png_structp png_ptr, + png_const_charp error_message), PNG_NORETURN); + +#else +/* Fatal error in PNG image of libpng - can't continue */ +PNG_EXPORTA(104, void, png_err, (png_structp png_ptr), PNG_NORETURN); +#endif + +/* Non-fatal error in libpng. Can continue, but may have a problem. */ +PNG_EXPORT(105, void, png_warning, (png_structp png_ptr, + png_const_charp warning_message)); + +/* Non-fatal error in libpng, chunk name is prepended to message. */ +PNG_EXPORT(106, void, png_chunk_warning, (png_structp png_ptr, + png_const_charp warning_message)); + +#ifdef PNG_BENIGN_ERRORS_SUPPORTED +/* Benign error in libpng. Can continue, but may have a problem. + * User can choose whether to handle as a fatal error or as a warning. */ +# undef png_benign_error +PNG_EXPORT(107, void, png_benign_error, (png_structp png_ptr, + png_const_charp warning_message)); + +/* Same, chunk name is prepended to message. */ +# undef png_chunk_benign_error +PNG_EXPORT(108, void, png_chunk_benign_error, (png_structp png_ptr, + png_const_charp warning_message)); + +PNG_EXPORT(109, void, png_set_benign_errors, + (png_structp png_ptr, int allowed)); +#else +# ifdef PNG_ALLOW_BENIGN_ERRORS +# define png_benign_error png_warning +# define png_chunk_benign_error png_chunk_warning +# else +# define png_benign_error png_error +# define png_chunk_benign_error png_chunk_error +# endif +#endif + +/* The png_set_<chunk> functions are for storing values in the png_info_struct. + * Similarly, the png_get_<chunk> calls are used to read values from the + * png_info_struct, either storing the parameters in the passed variables, or + * setting pointers into the png_info_struct where the data is stored. The + * png_get_<chunk> functions return a non-zero value if the data was available + * in info_ptr, or return zero and do not change any of the parameters if the + * data was not available. + * + * These functions should be used instead of directly accessing png_info + * to avoid problems with future changes in the size and internal layout of + * png_info_struct. + */ +/* Returns "flag" if chunk data is valid in info_ptr. */ +PNG_EXPORT(110, png_uint_32, png_get_valid, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_uint_32 flag)); + +/* Returns number of bytes needed to hold a transformed row. */ +PNG_EXPORT(111, png_size_t, png_get_rowbytes, (png_const_structp png_ptr, + png_const_infop info_ptr)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* Returns row_pointers, which is an array of pointers to scanlines that was + * returned from png_read_png(). + */ +PNG_EXPORT(112, png_bytepp, png_get_rows, + (png_const_structp png_ptr, png_const_infop info_ptr)); +/* Set row_pointers, which is an array of pointers to scanlines for use + * by png_write_png(). + */ +PNG_EXPORT(113, void, png_set_rows, (png_structp png_ptr, + png_infop info_ptr, png_bytepp row_pointers)); +#endif + +/* Returns number of color channels in image. */ +PNG_EXPORT(114, png_byte, png_get_channels, + (png_const_structp png_ptr, png_const_infop info_ptr)); + +#ifdef PNG_EASY_ACCESS_SUPPORTED +/* Returns image width in pixels. */ +PNG_EXPORT(115, png_uint_32, png_get_image_width, (png_const_structp png_ptr, + png_const_infop info_ptr)); + +/* Returns image height in pixels. */ +PNG_EXPORT(116, png_uint_32, png_get_image_height, (png_const_structp png_ptr, + png_const_infop info_ptr)); + +/* Returns image bit_depth. */ +PNG_EXPORT(117, png_byte, png_get_bit_depth, + (png_const_structp png_ptr, png_const_infop info_ptr)); + +/* Returns image color_type. */ +PNG_EXPORT(118, png_byte, png_get_color_type, (png_const_structp png_ptr, + png_const_infop info_ptr)); + +/* Returns image filter_type. */ +PNG_EXPORT(119, png_byte, png_get_filter_type, (png_const_structp png_ptr, + png_const_infop info_ptr)); + +/* Returns image interlace_type. */ +PNG_EXPORT(120, png_byte, png_get_interlace_type, (png_const_structp png_ptr, + png_const_infop info_ptr)); + +/* Returns image compression_type. */ +PNG_EXPORT(121, png_byte, png_get_compression_type, (png_const_structp png_ptr, + png_const_infop info_ptr)); + +/* Returns image resolution in pixels per meter, from pHYs chunk data. */ +PNG_EXPORT(122, png_uint_32, png_get_pixels_per_meter, + (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_EXPORT(123, png_uint_32, png_get_x_pixels_per_meter, + (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_EXPORT(124, png_uint_32, png_get_y_pixels_per_meter, + (png_const_structp png_ptr, png_const_infop info_ptr)); + +/* Returns pixel aspect ratio, computed from pHYs chunk data. */ +PNG_FP_EXPORT(125, float, png_get_pixel_aspect_ratio, + (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_FIXED_EXPORT(210, png_fixed_point, png_get_pixel_aspect_ratio_fixed, + (png_const_structp png_ptr, png_const_infop info_ptr)); + +/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ +PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels, + (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels, + (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_EXPORT(128, png_int_32, png_get_x_offset_microns, + (png_const_structp png_ptr, png_const_infop info_ptr)); +PNG_EXPORT(129, png_int_32, png_get_y_offset_microns, + (png_const_structp png_ptr, png_const_infop info_ptr)); + +#endif /* PNG_EASY_ACCESS_SUPPORTED */ + +/* Returns pointer to signature string read from PNG header */ +PNG_EXPORT(130, png_const_bytep, png_get_signature, + (png_const_structp png_ptr, png_infop info_ptr)); + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(131, png_uint_32, png_get_bKGD, + (png_const_structp png_ptr, png_infop info_ptr, + png_color_16p *background)); +#endif + +#ifdef PNG_bKGD_SUPPORTED +PNG_EXPORT(132, void, png_set_bKGD, (png_structp png_ptr, png_infop info_ptr, + png_const_color_16p background)); +#endif + +#ifdef PNG_cHRM_SUPPORTED +PNG_FP_EXPORT(133, png_uint_32, png_get_cHRM, (png_const_structp png_ptr, + png_const_infop info_ptr, double *white_x, double *white_y, double *red_x, + double *red_y, double *green_x, double *green_y, double *blue_x, + double *blue_y)); +#ifdef PNG_FIXED_POINT_SUPPORTED /* Otherwise not implemented */ +PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed, + (png_const_structp png_ptr, + png_const_infop info_ptr, png_fixed_point *int_white_x, + png_fixed_point *int_white_y, png_fixed_point *int_red_x, + png_fixed_point *int_red_y, png_fixed_point *int_green_x, + png_fixed_point *int_green_y, png_fixed_point *int_blue_x, + png_fixed_point *int_blue_y)); +#endif +#endif + +#ifdef PNG_cHRM_SUPPORTED +PNG_FP_EXPORT(135, void, png_set_cHRM, + (png_structp png_ptr, png_infop info_ptr, + double white_x, double white_y, double red_x, double red_y, double green_x, + double green_y, double blue_x, double blue_y)); +PNG_FIXED_EXPORT(136, void, png_set_cHRM_fixed, (png_structp png_ptr, + png_infop info_ptr, png_fixed_point int_white_x, + png_fixed_point int_white_y, png_fixed_point int_red_x, + png_fixed_point int_red_y, png_fixed_point int_green_x, + png_fixed_point int_green_y, png_fixed_point int_blue_x, + png_fixed_point int_blue_y)); +#endif + +#ifdef PNG_gAMA_SUPPORTED +PNG_FP_EXPORT(137, png_uint_32, png_get_gAMA, + (png_const_structp png_ptr, png_const_infop info_ptr, + double *file_gamma)); +PNG_FIXED_EXPORT(138, png_uint_32, png_get_gAMA_fixed, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_fixed_point *int_file_gamma)); +#endif + +#ifdef PNG_gAMA_SUPPORTED +PNG_FP_EXPORT(139, void, png_set_gAMA, (png_structp png_ptr, + png_infop info_ptr, double file_gamma)); +PNG_FIXED_EXPORT(140, void, png_set_gAMA_fixed, (png_structp png_ptr, + png_infop info_ptr, png_fixed_point int_file_gamma)); +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(141, png_uint_32, png_get_hIST, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_uint_16p *hist)); +#endif + +#ifdef PNG_hIST_SUPPORTED +PNG_EXPORT(142, void, png_set_hIST, (png_structp png_ptr, + png_infop info_ptr, png_const_uint_16p hist)); +#endif + +PNG_EXPORT(143, png_uint_32, png_get_IHDR, + (png_structp png_ptr, png_infop info_ptr, + png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, + int *interlace_method, int *compression_method, int *filter_method)); + +PNG_EXPORT(144, void, png_set_IHDR, + (png_structp png_ptr, png_infop info_ptr, + png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, + int interlace_method, int compression_method, int filter_method)); + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(145, png_uint_32, png_get_oFFs, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)); +#endif + +#ifdef PNG_oFFs_SUPPORTED +PNG_EXPORT(146, void, png_set_oFFs, + (png_structp png_ptr, png_infop info_ptr, + png_int_32 offset_x, png_int_32 offset_y, int unit_type)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(147, png_uint_32, png_get_pCAL, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, + int *nparams, + png_charp *units, png_charpp *params)); +#endif + +#ifdef PNG_pCAL_SUPPORTED +PNG_EXPORT(148, void, png_set_pCAL, (png_structp png_ptr, + png_infop info_ptr, + png_const_charp purpose, png_int_32 X0, png_int_32 X1, int type, + int nparams, png_const_charp units, png_charpp params)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(149, png_uint_32, png_get_pHYs, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); +#endif + +#ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(150, void, png_set_pHYs, + (png_structp png_ptr, png_infop info_ptr, + png_uint_32 res_x, png_uint_32 res_y, int unit_type)); +#endif + +PNG_EXPORT(151, png_uint_32, png_get_PLTE, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_colorp *palette, int *num_palette)); + +PNG_EXPORT(152, void, png_set_PLTE, + (png_structp png_ptr, png_infop info_ptr, + png_const_colorp palette, int num_palette)); + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(153, png_uint_32, png_get_sBIT, + (png_const_structp png_ptr, png_infop info_ptr, + png_color_8p *sig_bit)); +#endif + +#ifdef PNG_sBIT_SUPPORTED +PNG_EXPORT(154, void, png_set_sBIT, + (png_structp png_ptr, png_infop info_ptr, png_const_color_8p sig_bit)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(155, png_uint_32, png_get_sRGB, (png_const_structp png_ptr, + png_const_infop info_ptr, int *file_srgb_intent)); +#endif + +#ifdef PNG_sRGB_SUPPORTED +PNG_EXPORT(156, void, png_set_sRGB, + (png_structp png_ptr, png_infop info_ptr, int srgb_intent)); +PNG_EXPORT(157, void, png_set_sRGB_gAMA_and_cHRM, (png_structp png_ptr, + png_infop info_ptr, int srgb_intent)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(158, png_uint_32, png_get_iCCP, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_charpp name, int *compression_type, png_bytepp profile, + png_uint_32 *proflen)); +#endif + +#ifdef PNG_iCCP_SUPPORTED +PNG_EXPORT(159, void, png_set_iCCP, + (png_structp png_ptr, png_infop info_ptr, + png_const_charp name, int compression_type, png_const_bytep profile, + png_uint_32 proflen)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(160, png_uint_32, png_get_sPLT, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_sPLT_tpp entries)); +#endif + +#ifdef PNG_sPLT_SUPPORTED +PNG_EXPORT(161, void, png_set_sPLT, + (png_structp png_ptr, png_infop info_ptr, + png_const_sPLT_tp entries, int nentries)); +#endif + +#ifdef PNG_TEXT_SUPPORTED +/* png_get_text also returns the number of text chunks in *num_text */ +PNG_EXPORT(162, png_uint_32, png_get_text, + (png_const_structp png_ptr, png_const_infop info_ptr, + png_textp *text_ptr, int *num_text)); +#endif + +/* Note while png_set_text() will accept a structure whose text, + * language, and translated keywords are NULL pointers, the structure + * returned by png_get_text will always contain regular + * zero-terminated C strings. They might be empty strings but + * they will never be NULL pointers. + */ + +#ifdef PNG_TEXT_SUPPORTED +PNG_EXPORT(163, void, png_set_text, + (png_structp png_ptr, png_infop info_ptr, + png_const_textp text_ptr, int num_text)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(164, png_uint_32, png_get_tIME, + (png_const_structp png_ptr, png_infop info_ptr, png_timep *mod_time)); +#endif + +#ifdef PNG_tIME_SUPPORTED +PNG_EXPORT(165, void, png_set_tIME, + (png_structp png_ptr, png_infop info_ptr, png_const_timep mod_time)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(166, png_uint_32, png_get_tRNS, + (png_const_structp png_ptr, png_infop info_ptr, + png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color)); +#endif + +#ifdef PNG_tRNS_SUPPORTED +PNG_EXPORT(167, void, png_set_tRNS, + (png_structp png_ptr, png_infop info_ptr, + png_const_bytep trans_alpha, int num_trans, + png_const_color_16p trans_color)); +#endif + +#ifdef PNG_sCAL_SUPPORTED +PNG_FP_EXPORT(168, png_uint_32, png_get_sCAL, + (png_const_structp png_ptr, png_const_infop info_ptr, + int *unit, double *width, double *height)); +#ifdef PNG_FLOATING_ARITHMETIC_SUPPORTED +/* NOTE: this API is currently implemented using floating point arithmetic, + * consequently it can only be used on systems with floating point support. + * In any case the range of values supported by png_fixed_point is small and it + * is highly recommended that png_get_sCAL_s be used instead. + */ +PNG_FIXED_EXPORT(214, png_uint_32, png_get_sCAL_fixed, + (png_structp png_ptr, png_const_infop info_ptr, int *unit, + png_fixed_point *width, + png_fixed_point *height)); +#endif +PNG_EXPORT(169, png_uint_32, png_get_sCAL_s, + (png_const_structp png_ptr, png_const_infop info_ptr, + int *unit, png_charpp swidth, png_charpp sheight)); + +PNG_FP_EXPORT(170, void, png_set_sCAL, + (png_structp png_ptr, png_infop info_ptr, + int unit, double width, double height)); +PNG_FIXED_EXPORT(213, void, png_set_sCAL_fixed, (png_structp png_ptr, + png_infop info_ptr, int unit, png_fixed_point width, + png_fixed_point height)); +PNG_EXPORT(171, void, png_set_sCAL_s, + (png_structp png_ptr, png_infop info_ptr, + int unit, png_const_charp swidth, png_const_charp sheight)); +#endif /* PNG_sCAL_SUPPORTED */ + +#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED +/* Provide a list of chunks and how they are to be handled, if the built-in + handling or default unknown chunk handling is not desired. Any chunks not + listed will be handled in the default manner. The IHDR and IEND chunks + must not be listed. + keep = 0: follow default behaviour + = 1: do not keep + = 2: keep only if safe-to-copy + = 3: keep even if unsafe-to-copy +*/ +PNG_EXPORT(172, void, png_set_keep_unknown_chunks, + (png_structp png_ptr, int keep, + png_const_bytep chunk_list, int num_chunks)); +PNG_EXPORT(173, int, png_handle_as_unknown, (png_structp png_ptr, + png_const_bytep chunk_name)); +#endif +#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED +PNG_EXPORT(174, void, png_set_unknown_chunks, (png_structp png_ptr, + png_infop info_ptr, png_const_unknown_chunkp unknowns, + int num_unknowns)); +PNG_EXPORT(175, void, png_set_unknown_chunk_location, + (png_structp png_ptr, png_infop info_ptr, int chunk, int location)); +PNG_EXPORT(176, int, png_get_unknown_chunks, (png_const_structp png_ptr, + png_const_infop info_ptr, png_unknown_chunkpp entries)); +#endif + +/* Png_free_data() will turn off the "valid" flag for anything it frees. + * If you need to turn it off for a chunk that your application has freed, + * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); + */ +PNG_EXPORT(177, void, png_set_invalid, + (png_structp png_ptr, png_infop info_ptr, int mask)); + +#ifdef PNG_INFO_IMAGE_SUPPORTED +/* The "params" pointer is currently not used and is for future expansion. */ +PNG_EXPORT(178, void, png_read_png, (png_structp png_ptr, png_infop info_ptr, + int transforms, png_voidp params)); +PNG_EXPORT(179, void, png_write_png, (png_structp png_ptr, png_infop info_ptr, + int transforms, png_voidp params)); +#endif + +PNG_EXPORT(180, png_const_charp, png_get_copyright, + (png_const_structp png_ptr)); +PNG_EXPORT(181, png_const_charp, png_get_header_ver, + (png_const_structp png_ptr)); +PNG_EXPORT(182, png_const_charp, png_get_header_version, + (png_const_structp png_ptr)); +PNG_EXPORT(183, png_const_charp, png_get_libpng_ver, + (png_const_structp png_ptr)); + +#ifdef PNG_MNG_FEATURES_SUPPORTED +PNG_EXPORT(184, png_uint_32, png_permit_mng_features, (png_structp png_ptr, + png_uint_32 mng_features_permitted)); +#endif + +/* For use in png_set_keep_unknown, added to version 1.2.6 */ +#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 +#define PNG_HANDLE_CHUNK_NEVER 1 +#define PNG_HANDLE_CHUNK_IF_SAFE 2 +#define PNG_HANDLE_CHUNK_ALWAYS 3 + +/* Strip the prepended error numbers ("#nnn ") from error and warning + * messages before passing them to the error or warning handler. + */ +#ifdef PNG_ERROR_NUMBERS_SUPPORTED +PNG_EXPORT(185, void, png_set_strip_error_numbers, + (png_structp png_ptr, + png_uint_32 strip_mode)); +#endif + +/* Added in libpng-1.2.6 */ +#ifdef PNG_SET_USER_LIMITS_SUPPORTED +PNG_EXPORT(186, void, png_set_user_limits, (png_structp png_ptr, + png_uint_32 user_width_max, png_uint_32 user_height_max)); +PNG_EXPORT(187, png_uint_32, png_get_user_width_max, + (png_const_structp png_ptr)); +PNG_EXPORT(188, png_uint_32, png_get_user_height_max, + (png_const_structp png_ptr)); +/* Added in libpng-1.4.0 */ +PNG_EXPORT(189, void, png_set_chunk_cache_max, (png_structp png_ptr, + png_uint_32 user_chunk_cache_max)); +PNG_EXPORT(190, png_uint_32, png_get_chunk_cache_max, + (png_const_structp png_ptr)); +/* Added in libpng-1.4.1 */ +PNG_EXPORT(191, void, png_set_chunk_malloc_max, (png_structp png_ptr, + png_alloc_size_t user_chunk_cache_max)); +PNG_EXPORT(192, png_alloc_size_t, png_get_chunk_malloc_max, + (png_const_structp png_ptr)); +#endif + +#if defined(PNG_INCH_CONVERSIONS_SUPPORTED) +PNG_EXPORT(193, png_uint_32, png_get_pixels_per_inch, + (png_const_structp png_ptr, png_const_infop info_ptr)); + +PNG_EXPORT(194, png_uint_32, png_get_x_pixels_per_inch, + (png_const_structp png_ptr, png_const_infop info_ptr)); + +PNG_EXPORT(195, png_uint_32, png_get_y_pixels_per_inch, + (png_const_structp png_ptr, png_const_infop info_ptr)); + +PNG_FP_EXPORT(196, float, png_get_x_offset_inches, + (png_const_structp png_ptr, png_const_infop info_ptr)); +#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ +PNG_FIXED_EXPORT(211, png_fixed_point, png_get_x_offset_inches_fixed, + (png_structp png_ptr, png_const_infop info_ptr)); +#endif + +PNG_FP_EXPORT(197, float, png_get_y_offset_inches, (png_const_structp png_ptr, + png_const_infop info_ptr)); +#ifdef PNG_FIXED_POINT_SUPPORTED /* otherwise not implemented. */ +PNG_FIXED_EXPORT(212, png_fixed_point, png_get_y_offset_inches_fixed, + (png_structp png_ptr, png_const_infop info_ptr)); +#endif + +# ifdef PNG_pHYs_SUPPORTED +PNG_EXPORT(198, png_uint_32, png_get_pHYs_dpi, (png_const_structp png_ptr, + png_const_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, + int *unit_type)); +# endif /* PNG_pHYs_SUPPORTED */ +#endif /* PNG_INCH_CONVERSIONS_SUPPORTED */ + +/* Added in libpng-1.4.0 */ +#ifdef PNG_IO_STATE_SUPPORTED +PNG_EXPORT(199, png_uint_32, png_get_io_state, (png_structp png_ptr)); + +PNG_EXPORTA(200, png_const_bytep, png_get_io_chunk_name, + (png_structp png_ptr), PNG_DEPRECATED); +PNG_EXPORT(216, png_uint_32, png_get_io_chunk_type, + (png_const_structp png_ptr)); + +/* The flags returned by png_get_io_state() are the following: */ +# define PNG_IO_NONE 0x0000 /* no I/O at this moment */ +# define PNG_IO_READING 0x0001 /* currently reading */ +# define PNG_IO_WRITING 0x0002 /* currently writing */ +# define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ +# define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ +# define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ +# define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ +# define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ +# define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ +#endif /* ?PNG_IO_STATE_SUPPORTED */ + +/* Interlace support. The following macros are always defined so that if + * libpng interlace handling is turned off the macros may be used to handle + * interlaced images within the application. + */ +#define PNG_INTERLACE_ADAM7_PASSES 7 + +/* Two macros to return the first row and first column of the original, + * full, image which appears in a given pass. 'pass' is in the range 0 + * to 6 and the result is in the range 0 to 7. + */ +#define PNG_PASS_START_ROW(pass) (((1U&~(pass))<<(3-((pass)>>1)))&7) +#define PNG_PASS_START_COL(pass) (((1U& (pass))<<(3-(((pass)+1)>>1)))&7) + +/* Two macros to help evaluate the number of rows or columns in each + * pass. This is expressed as a shift - effectively log2 of the number or + * rows or columns in each 8x8 tile of the original image. + */ +#define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) +#define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) + +/* Hence two macros to determine the number of rows or columns in a given + * pass of an image given its height or width. In fact these macros may + * return non-zero even though the sub-image is empty, because the other + * dimension may be empty for a small image. + */ +#define PNG_PASS_ROWS(height, pass) (((height)+(((1<<PNG_PASS_ROW_SHIFT(pass))\ + -1)-PNG_PASS_START_ROW(pass)))>>PNG_PASS_ROW_SHIFT(pass)) +#define PNG_PASS_COLS(width, pass) (((width)+(((1<<PNG_PASS_COL_SHIFT(pass))\ + -1)-PNG_PASS_START_COL(pass)))>>PNG_PASS_COL_SHIFT(pass)) + +/* For the progressive reader it is necessary to find the row in the output + * image given a row in an interlaced image, so two more macros: + */ +#define PNG_ROW_FROM_PASS_ROW(yIn, pass) \ + (((yIn)<<PNG_PASS_ROW_SHIFT(pass))+PNG_PASS_START_ROW(pass)) +#define PNG_COL_FROM_PASS_COL(xIn, pass) \ + (((xIn)<<PNG_PASS_COL_SHIFT(pass))+PNG_PASS_START_COL(pass)) + +/* Two macros which return a boolean (0 or 1) saying whether the given row + * or column is in a particular pass. These use a common utility macro that + * returns a mask for a given pass - the offset 'off' selects the row or + * column version. The mask has the appropriate bit set for each column in + * the tile. + */ +#define PNG_PASS_MASK(pass,off) ( \ + ((0x110145AFU>>(((7-(off))-(pass))<<2)) & 0xFU) | \ + ((0x01145AF0U>>(((7-(off))-(pass))<<2)) & 0xF0U)) + +#define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ + ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) +#define PNG_COL_IN_INTERLACE_PASS(x, pass) \ + ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) + +#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED +/* With these routines we avoid an integer divide, which will be slower on + * most machines. However, it does take more operations than the corresponding + * divide method, so it may be slower on a few RISC systems. There are two + * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. + * + * Note that the rounding factors are NOT supposed to be the same! 128 and + * 32768 are correct for the NODIV code; 127 and 32767 are correct for the + * standard method. + * + * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] + */ + + /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ + +# define png_composite(composite, fg, alpha, bg) \ + { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ + * (png_uint_16)(alpha) \ + + (png_uint_16)(bg)*(png_uint_16)(255 \ + - (png_uint_16)(alpha)) + (png_uint_16)128); \ + (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } + +# define png_composite_16(composite, fg, alpha, bg) \ + { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ + * (png_uint_32)(alpha) \ + + (png_uint_32)(bg)*(png_uint_32)(65535L \ + - (png_uint_32)(alpha)) + (png_uint_32)32768L); \ + (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } + +#else /* Standard method using integer division */ + +# define png_composite(composite, fg, alpha, bg) \ + (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ + (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ + (png_uint_16)127) / 255) + +# define png_composite_16(composite, fg, alpha, bg) \ + (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ + (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ + (png_uint_32)32767) / (png_uint_32)65535L) +#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ + +#ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(201, png_uint_32, png_get_uint_32, (png_const_bytep buf)); +PNG_EXPORT(202, png_uint_16, png_get_uint_16, (png_const_bytep buf)); +PNG_EXPORT(203, png_int_32, png_get_int_32, (png_const_bytep buf)); +#endif + +PNG_EXPORT(204, png_uint_32, png_get_uint_31, (png_structp png_ptr, + png_const_bytep buf)); +/* No png_get_int_16 -- may be added if there's a real need for it. */ + +/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ +#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(205, void, png_save_uint_32, (png_bytep buf, png_uint_32 i)); +#endif +#ifdef PNG_SAVE_INT_32_SUPPORTED +PNG_EXPORT(206, void, png_save_int_32, (png_bytep buf, png_int_32 i)); +#endif + +/* Place a 16-bit number into a buffer in PNG byte order. + * The parameter is declared unsigned int, not png_uint_16, + * just to avoid potential problems on pre-ANSI C compilers. + */ +#ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED +PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); +/* No png_save_int_16 -- may be added if there's a real need for it. */ +#endif + +#ifdef PNG_USE_READ_MACROS +/* Inline macros to do direct reads of bytes from the input buffer. + * The png_get_int_32() routine assumes we are using two's complement + * format for negative values, which is almost certainly true. + */ +# define png_get_uint_32(buf) \ + (((png_uint_32)(*(buf)) << 24) + \ + ((png_uint_32)(*((buf) + 1)) << 16) + \ + ((png_uint_32)(*((buf) + 2)) << 8) + \ + ((png_uint_32)(*((buf) + 3)))) + + /* From libpng-1.4.0 until 1.4.4, the png_get_uint_16 macro (but not the + * function) incorrectly returned a value of type png_uint_32. + */ +# define png_get_uint_16(buf) \ + ((png_uint_16) \ + (((unsigned int)(*(buf)) << 8) + \ + ((unsigned int)(*((buf) + 1))))) + +# define png_get_int_32(buf) \ + ((png_int_32)((*(buf) & 0x80) \ + ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffffL) + 1)) \ + : (png_int_32)png_get_uint_32(buf))) +#endif + +/* Maintainer: Put new public prototypes here ^, in libpng.3, and project + * defs + */ + +/* The last ordinal number (this is the *last* one already used; the next + * one to use is one more than this.) Maintainer, remember to add an entry to + * scripts/symbols.def as well. + */ +#ifdef PNG_EXPORT_LAST_ORDINAL + PNG_EXPORT_LAST_ORDINAL(220); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* PNG_VERSION_INFO_ONLY */ +/* Do not put anything past this line */ +#endif /* PNG_H */ diff --git a/contrib/qrencode-win32/vc8/qrcode/png/pngconf.h b/contrib/qrencode-win32/vc8/qrcode/png/pngconf.h new file mode 100644 index 0000000..6be43af --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/png/pngconf.h @@ -0,0 +1,632 @@ + +/* pngconf.h - machine configurable file for libpng + * + * libpng version 1.5.1 - February 3, 2011 + * + * Copyright (c) 1998-2011 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * This code is released under the libpng license. + * For conditions of distribution and use, see the disclaimer + * and license in png.h + * + */ + +/* Any machine specific code is near the front of this file, so if you + * are configuring libpng for a machine, you may want to read the section + * starting here down to where it starts to typedef png_color, png_text, + * and png_info. + */ + +#ifndef PNGCONF_H +#define PNGCONF_H + +/* PNG_NO_LIMITS_H may be used to turn off the use of the standard C + * definition file for machine specific limits, this may impact the + * correctness of the definitons below (see uses of INT_MAX). + */ +#ifndef PNG_NO_LIMITS_H +# include <limits.h> +#endif + +/* For the memory copy APIs (i.e. the standard definitions of these), + * because this file defines png_memcpy and so on the base APIs must + * be defined here. + */ +#ifdef BSD +# include <strings.h> +#else +# include <string.h> +#endif + +/* For png_FILE_p - this provides the standard definition of a + * FILE + */ +#ifdef PNG_STDIO_SUPPORTED +# include <stdio.h> +#endif + +/* This controls optimization of the reading of 16 and 32 bit values + * from PNG files. It can be set on a per-app-file basis - it + * just changes whether a macro is used to the function is called. + * The library builder sets the default, if read functions are not + * built into the library the macro implementation is forced on. + */ +#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED +# define PNG_USE_READ_MACROS +#endif +#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) +# if PNG_DEFAULT_READ_MACROS +# define PNG_USE_READ_MACROS +# endif +#endif + +/* COMPILER SPECIFIC OPTIONS. + * + * These options are provided so that a variety of difficult compilers + * can be used. Some are fixed at build time (e.g. PNG_API_RULE + * below) but still have compiler specific implementations, others + * may be changed on a per-file basis when compiling against libpng. + */ + +/* The PNGARG macro protects us against machines that don't have function + * prototypes (ie K&R style headers). If your compiler does not handle + * function prototypes, define this macro and use the included ansi2knr. + * I've always been able to use _NO_PROTO as the indicator, but you may + * need to drag the empty declaration out in front of here, or change the + * ifdef to suit your own needs. + */ +#ifndef PNGARG + +# ifdef OF /* zlib prototype munger */ +# define PNGARG(arglist) OF(arglist) +# else + +# ifdef _NO_PROTO +# define PNGARG(arglist) () +# else +# define PNGARG(arglist) arglist +# endif /* _NO_PROTO */ + +# endif /* OF */ + +#endif /* PNGARG */ + +/* Function calling conventions. + * ============================= + * Normally it is not necessary to specify to the compiler how to call + * a function - it just does it - however on x86 systems derived from + * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems + * and some others) there are multiple ways to call a function and the + * default can be changed on the compiler command line. For this reason + * libpng specifies the calling convention of every exported function and + * every function called via a user supplied function pointer. This is + * done in this file by defining the following macros: + * + * PNGAPI Calling convention for exported functions. + * PNGCBAPI Calling convention for user provided (callback) functions. + * PNGCAPI Calling convention used by the ANSI-C library (required + * for longjmp callbacks and sometimes used internally to + * specify the calling convention for zlib). + * + * These macros should never be overridden. If it is necessary to + * change calling convention in a private build this can be done + * by setting PNG_API_RULE (which defaults to 0) to one of the values + * below to select the correct 'API' variants. + * + * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. + * This is correct in every known environment. + * PNG_API_RULE=1 Use the operating system convention for PNGAPI and + * the 'C' calling convention (from PNGCAPI) for + * callbacks (PNGCBAPI). This is no longer required + * in any known environment - if it has to be used + * please post an explanation of the problem to the + * libpng mailing list. + * + * These cases only differ if the operating system does not use the C + * calling convention, at present this just means the above cases + * (x86 DOS/Windows sytems) and, even then, this does not apply to + * Cygwin running on those systems. + * + * Note that the value must be defined in pnglibconf.h so that what + * the application uses to call the library matches the conventions + * set when building the library. + */ + +/* Symbol export + * ============= + * When building a shared library it is almost always necessary to tell + * the compiler which symbols to export. The png.h macro 'PNG_EXPORT' + * is used to mark the symbols. On some systems these symbols can be + * extracted at link time and need no special processing by the compiler, + * on other systems the symbols are flagged by the compiler and just + * the declaration requires a special tag applied (unfortunately) in a + * compiler dependent way. Some systems can do either. + * + * A small number of older systems also require a symbol from a DLL to + * be flagged to the program that calls it. This is a problem because + * we do not know in the header file included by application code that + * the symbol will come from a shared library, as opposed to a statically + * linked one. For this reason the application must tell us by setting + * the magic flag PNG_USE_DLL to turn on the special processing before + * it includes png.h. + * + * Four additional macros are used to make this happen: + * + * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from + * the build or imported if PNG_USE_DLL is set - compiler + * and system specific. + * + * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to + * 'type', compiler specific. + * + * PNG_DLL_EXPORT Set to the magic to use during a libpng build to + * make a symbol exported from the DLL. + * + * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come + * from a DLL - used to define PNG_IMPEXP when + * PNG_USE_DLL is set. + */ + +/* System specific discovery. + * ========================== + * This code is used at build time to find PNG_IMPEXP, the API settings + * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL + * import processing is possible. On Windows/x86 systems it also sets + * compiler-specific macros to the values required to change the calling + * conventions of the various functions. + */ +#if ( defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ + defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) ) &&\ + ( defined(_X86_) || defined(_X64_) || defined(_M_IX86) ||\ + defined(_M_X64) || defined(_M_IA64) ) + /* Windows system (DOS doesn't support DLLs) running on x86/x64. Includes + * builds under Cygwin or MinGW. Also includes Watcom builds but these need + * special treatment because they are not compatible with GCC or Visual C + * because of different calling conventions. + */ +# if PNG_API_RULE == 2 + /* If this line results in an error, either because __watcall is not + * understood or because of a redefine just below you cannot use *this* + * build of the library with the compiler you are using. *This* build was + * build using Watcom and applications must also be built using Watcom! + */ +# define PNGCAPI __watcall +# endif + +# if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) +# define PNGCAPI __cdecl +# if PNG_API_RULE == 1 +# define PNGAPI __stdcall +# endif +# else + /* An older compiler, or one not detected (erroneously) above, + * if necessary override on the command line to get the correct + * variants for the compiler. + */ +# ifndef PNGCAPI +# define PNGCAPI _cdecl +# endif +# if PNG_API_RULE == 1 && !defined(PNGAPI) +# define PNGAPI _stdcall +# endif +# endif /* compiler/api */ + /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ + +# if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) + ERROR: PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed +# endif + +# if (defined(_MSC_VER) && _MSC_VER < 800) ||\ + (defined(__BORLANDC__) && __BORLANDC__ < 0x500) + /* older Borland and MSC + * compilers used '__export' and required this to be after + * the type. + */ +# ifndef PNG_EXPORT_TYPE +# define PNG_EXPORT_TYPE(type) type PNG_IMPEXP +# endif +# define PNG_DLL_EXPORT __export +# else /* newer compiler */ +# define PNG_DLL_EXPORT __declspec(dllexport) +# ifndef PNG_DLL_IMPORT +# define PNG_DLL_IMPORT __declspec(dllimport) +# endif +# endif /* compiler */ + +#else /* !Windows/x86 */ +# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) +# define PNGAPI _System +# else /* !Windows/x86 && !OS/2 */ + /* Use the defaults, or define PNG*API on the command line (but + * this will have to be done for every compile!) + */ +# endif /* other system, !OS/2 */ +#endif /* !Windows/x86 */ + +/* Now do all the defaulting . */ +#ifndef PNGCAPI +# define PNGCAPI +#endif +#ifndef PNGCBAPI +# define PNGCBAPI PNGCAPI +#endif +#ifndef PNGAPI +# define PNGAPI PNGCAPI +#endif + +/* The default for PNG_IMPEXP depends on whether the library is + * being built or used. + */ +#ifndef PNG_IMPEXP +# ifdef PNGLIB_BUILD + /* Building the library */ +# if (defined(DLL_EXPORT)/*from libtool*/ ||\ + defined(_WINDLL) || defined(_DLL) || defined(__DLL__) ||\ + defined(_USRDLL) ||\ + defined(PNG_BUILD_DLL)) && defined(PNG_DLL_EXPORT) + /* Building a DLL. */ +# define PNG_IMPEXP PNG_DLL_EXPORT +# endif /* DLL */ +# else + /* Using the library */ +# if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) + /* This forces use of a DLL, disallowing static linking */ +# define PNG_IMPEXP PNG_DLL_IMPORT +# endif +# endif + +# ifndef PNG_IMPEXP +# define PNG_IMPEXP +# endif +#endif + +/* THe following complexity is concerned with getting the 'attributes' of the + * declared function in the correct place. This potentially requires a separate + * PNG_EXPORT function for every compiler. + */ +#ifndef PNG_FUNCTION +# ifdef __GNUC__ +# define PNG_FUNCTION(type, name, args, attributes)\ + attributes type name args +# else /* !GNUC */ +# ifdef _MSC_VER +# define PNG_FUNCTION(type, name, args, attributes)\ + attributes type name args +# else /* !MSC */ +# define PNG_FUNCTION(type, name, args, attributes)\ + type name args +# endif +# endif +#endif + +#ifndef PNG_EXPORT_TYPE +# define PNG_EXPORT_TYPE(type) PNG_IMPEXP type +#endif + + /* The ordinal value is only relevant when preprocessing png.h for symbol + * table entries, so we discard it here. See the .dfn files in the + * scripts directory. + */ +#ifndef PNG_EXPORTA +# define PNG_EXPORTA(ordinal, type, name, args, attributes)\ + extern PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args),\ + attributes) +#endif + +#define PNG_EXPORT(ordinal, type, name, args)\ + PNG_EXPORTA(ordinal, type, name, args, ) + +/* Use PNG_REMOVED to comment out a removed interface. */ +#ifndef PNG_REMOVED +# define PNG_REMOVED(ordinal, type, name, args, attributes) +#endif + +#ifndef PNG_CALLBACK +# define PNG_CALLBACK(type, name, args, attributes)\ + type (PNGCBAPI name) PNGARG(args) attributes +#endif + +/* Support for compiler specific function attributes. These are used + * so that where compiler support is available incorrect use of API + * functions in png.h will generate compiler warnings. + * + * Added at libpng-1.2.41. + */ + +#ifndef PNG_NO_PEDANTIC_WARNINGS +# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED +# define PNG_PEDANTIC_WARNINGS_SUPPORTED +# endif +#endif + +#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED + /* Support for compiler specific function attributes. These are used + * so that where compiler support is available incorrect use of API + * functions in png.h will generate compiler warnings. Added at libpng + * version 1.2.41. + */ +# ifdef __GNUC__ +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __attribute__((__noreturn__)) +# endif +# ifndef PNG_PTR_NORETURN +# define PNG_PTR_NORETURN __attribute__((__noreturn__)) +# endif +# ifndef PNG_ALLOCATED +# define PNG_ALLOCATED __attribute__((__malloc__)) +# endif + + /* This specifically protects structure members that should only be + * accessed from within the library, therefore should be empty during + * a library build. + */ +# ifndef PNGLIB_BUILD +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __attribute__((__deprecated__)) +# endif +# ifndef PNG_DEPSTRUCT +# define PNG_DEPSTRUCT __attribute__((__deprecated__)) +# endif +# ifndef PNG_PRIVATE +# if 0 /* Doesn't work so we use deprecated instead*/ +# define PNG_PRIVATE \ + __attribute__((warning("This function is not exported by libpng."))) +# else +# define PNG_PRIVATE \ + __attribute__((__deprecated__)) +# endif +# endif /* PNG_PRIVATE */ +# endif /* PNGLIB_BUILD */ +# endif /* __GNUC__ */ +# ifdef _MSC_VER /* may need to check value */ +# ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /*not supported*/ +# endif +# ifndef PNG_NORETURN +# define PNG_NORETURN __declspec(noreturn) +# endif +# ifndef PNG_PTR_NORETURN +# define PNG_PTR_NORETURN /*not supported*/ +# endif +# ifndef PNG_ALLOCATED +# define PNG_ALLOCATED __declspec(restrict) +# endif + + /* This specifically protects structure members that should only be + * accessed from within the library, therefore should be empty during + * a library build. + */ +# ifndef PNGLIB_BUILD +# ifndef PNG_DEPRECATED +# define PNG_DEPRECATED __declspec(deprecated) +# endif +# ifndef PNG_DEPSTRUCT +# define PNG_DEPSTRUCT __declspec(deprecated) +# endif +# ifndef PNG_PRIVATE +# define PNG_PRIVATE __declspec(deprecated) +# endif /* PNG_PRIVATE */ +# endif /* PNGLIB_BUILD */ +# endif /* __GNUC__ */ +#endif /* PNG_PEDANTIC_WARNINGS */ + +#ifndef PNG_DEPRECATED +# define PNG_DEPRECATED /* Use of this function is deprecated */ +#endif +#ifndef PNG_USE_RESULT +# define PNG_USE_RESULT /* The result of this function must be checked */ +#endif +#ifndef PNG_NORETURN +# define PNG_NORETURN /* This function does not return */ +#endif +#ifndef PNG_ALLOCATED +# define PNG_ALLOCATED /* The result of the function is new memory */ +#endif +#ifndef PNG_DEPSTRUCT +# define PNG_DEPSTRUCT /* Access to this struct member is deprecated */ +#endif +#ifndef PNG_PRIVATE +# define PNG_PRIVATE /* This is a private libpng function */ +#endif +#ifndef PNG_FP_EXPORT /* A floating point API. */ +# ifdef PNG_FLOATING_POINT_SUPPORTED +# define PNG_FP_EXPORT(ordinal, type, name, args)\ + PNG_EXPORT(ordinal, type, name, args) +# else /* No floating point APIs */ +# define PNG_FP_EXPORT(ordinal, type, name, args) +# endif +#endif +#ifndef PNG_FIXED_EXPORT /* A fixed point API. */ +# ifdef PNG_FIXED_POINT_SUPPORTED +# define PNG_FIXED_EXPORT(ordinal, type, name, args)\ + PNG_EXPORT(ordinal, type, name, args) +# else /* No fixed point APIs */ +# define PNG_FIXED_EXPORT(ordinal, type, name, args) +# endif +#endif + +/* The following uses const char * instead of char * for error + * and warning message functions, so some compilers won't complain. + * If you do not want to use const, define PNG_NO_CONST here. + * + * This should not change how the APIs are called, so it can be done + * on a per-file basis in the application. + */ +#ifndef PNG_CONST +# ifndef PNG_NO_CONST +# define PNG_CONST const +# else +# define PNG_CONST +# endif +#endif + +/* Some typedefs to get us started. These should be safe on most of the + * common platforms. The typedefs should be at least as large as the + * numbers suggest (a png_uint_32 must be at least 32 bits long), but they + * don't have to be exactly that size. Some compilers dislike passing + * unsigned shorts as function parameters, so you may be better off using + * unsigned int for png_uint_16. + */ + +#if defined(INT_MAX) && (INT_MAX > 0x7ffffffeL) +typedef unsigned int png_uint_32; +typedef int png_int_32; +#else +typedef unsigned long png_uint_32; +typedef long png_int_32; +#endif +typedef unsigned short png_uint_16; +typedef short png_int_16; +typedef unsigned char png_byte; + +#ifdef PNG_NO_SIZE_T +typedef unsigned int png_size_t; +#else +typedef size_t png_size_t; +#endif +#define png_sizeof(x) (sizeof (x)) + +/* The following is needed for medium model support. It cannot be in the + * pngpriv.h header. Needs modification for other compilers besides + * MSC. Model independent support declares all arrays and pointers to be + * large using the far keyword. The zlib version used must also support + * model independent data. As of version zlib 1.0.4, the necessary changes + * have been made in zlib. The USE_FAR_KEYWORD define triggers other + * changes that are needed. (Tim Wegner) + */ + +/* Separate compiler dependencies (problem here is that zlib.h always + * defines FAR. (SJT) + */ +#ifdef __BORLANDC__ +# if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) +# define LDATA 1 +# else +# define LDATA 0 +# endif + /* GRR: why is Cygwin in here? Cygwin is not Borland C... */ +# if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__) +# define PNG_MAX_MALLOC_64K /* only used in build */ +# if (LDATA != 1) +# ifndef FAR +# define FAR __far +# endif +# define USE_FAR_KEYWORD +# endif /* LDATA != 1 */ + /* Possibly useful for moving data out of default segment. + * Uncomment it if you want. Could also define FARDATA as + * const if your compiler supports it. (SJT) +# define FARDATA FAR + */ +# endif /* __WIN32__, __FLAT__, __CYGWIN__ */ +#endif /* __BORLANDC__ */ + + +/* Suggest testing for specific compiler first before testing for + * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, + * making reliance oncertain keywords suspect. (SJT) + */ + +/* MSC Medium model */ +#ifdef FAR +# ifdef M_I86MM +# define USE_FAR_KEYWORD +# define FARDATA FAR +# include <dos.h> +# endif +#endif + +/* SJT: default case */ +#ifndef FAR +# define FAR +#endif + +/* At this point FAR is always defined */ +#ifndef FARDATA +# define FARDATA +#endif + +/* Typedef for floating-point numbers that are converted + * to fixed-point with a multiple of 100,000, e.g., gamma + */ +typedef png_int_32 png_fixed_point; + +/* Add typedefs for pointers */ +typedef void FAR * png_voidp; +typedef PNG_CONST void FAR * png_const_voidp; +typedef png_byte FAR * png_bytep; +typedef PNG_CONST png_byte FAR * png_const_bytep; +typedef png_uint_32 FAR * png_uint_32p; +typedef PNG_CONST png_uint_32 FAR * png_const_uint_32p; +typedef png_int_32 FAR * png_int_32p; +typedef PNG_CONST png_int_32 FAR * png_const_int_32p; +typedef png_uint_16 FAR * png_uint_16p; +typedef PNG_CONST png_uint_16 FAR * png_const_uint_16p; +typedef png_int_16 FAR * png_int_16p; +typedef PNG_CONST png_int_16 FAR * png_const_int_16p; +typedef char FAR * png_charp; +typedef PNG_CONST char FAR * png_const_charp; +typedef png_fixed_point FAR * png_fixed_point_p; +typedef PNG_CONST png_fixed_point FAR * png_const_fixed_point_p; +typedef png_size_t FAR * png_size_tp; +typedef PNG_CONST png_size_t FAR * png_const_size_tp; + +#ifdef PNG_STDIO_SUPPORTED +typedef FILE * png_FILE_p; +#endif + +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double FAR * png_doublep; +typedef PNG_CONST double FAR * png_const_doublep; +#endif + +/* Pointers to pointers; i.e. arrays */ +typedef png_byte FAR * FAR * png_bytepp; +typedef png_uint_32 FAR * FAR * png_uint_32pp; +typedef png_int_32 FAR * FAR * png_int_32pp; +typedef png_uint_16 FAR * FAR * png_uint_16pp; +typedef png_int_16 FAR * FAR * png_int_16pp; +typedef PNG_CONST char FAR * FAR * png_const_charpp; +typedef char FAR * FAR * png_charpp; +typedef png_fixed_point FAR * FAR * png_fixed_point_pp; +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double FAR * FAR * png_doublepp; +#endif + +/* Pointers to pointers to pointers; i.e., pointer to array */ +typedef char FAR * FAR * FAR * png_charppp; + +/* png_alloc_size_t is guaranteed to be no smaller than png_size_t, + * and no smaller than png_uint_32. Casts from png_size_t or png_uint_32 + * to png_alloc_size_t are not necessary; in fact, it is recommended + * not to use them at all so that the compiler can complain when something + * turns out to be problematic. + * Casts in the other direction (from png_alloc_size_t to png_size_t or + * png_uint_32) should be explicitly applied; however, we do not expect + * to encounter practical situations that require such conversions. + */ +#if defined(__TURBOC__) && !defined(__FLAT__) + typedef unsigned long png_alloc_size_t; +#else +# if defined(_MSC_VER) && defined(MAXSEG_64K) + typedef unsigned long png_alloc_size_t; +# else + /* This is an attempt to detect an old Windows system where (int) is + * actually 16 bits, in that case png_malloc must have an argument with a + * bigger size to accomodate the requirements of the library. + */ +# if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \ + (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL) + typedef DWORD png_alloc_size_t; +# else + typedef png_size_t png_alloc_size_t; +# endif +# endif +#endif + +#endif /* PNGCONF_H */ diff --git a/contrib/qrencode-win32/vc8/qrcode/png/pnglibconf.h b/contrib/qrencode-win32/vc8/qrcode/png/pnglibconf.h new file mode 100644 index 0000000..1656f64 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/png/pnglibconf.h @@ -0,0 +1,176 @@ + +/* libpng STANDARD API DEFINITION */ + +/* pnglibconf.h - library build configuration */ + +/* libpng version 1.5.0 - last changed on January 6, 2011 */ + +/* Copyright (c) 1998-2011 Glenn Randers-Pehrson */ + +/* This code is released under the libpng license. */ +/* For conditions of distribution and use, see the disclaimer */ +/* and license in png.h */ + +/* pnglibconf.h */ +/* Machine generated file: DO NOT EDIT */ +/* Derived from: scripts/pnglibconf.dfa */ +#ifndef PNGLCONF_H +#define PNGLCONF_H +/* settings */ +#define PNG_MAX_GAMMA_8 11 +#define PNG_CALLOC_SUPPORTED +#define PNG_QUANTIZE_RED_BITS 5 +#define PNG_USER_WIDTH_MAX 1000000L +#define PNG_QUANTIZE_GREEN_BITS 5 +#define PNG_API_RULE 0 +#define PNG_QUANTIZE_BLUE_BITS 5 +#define PNG_USER_CHUNK_CACHE_MAX 0 +#define PNG_USER_HEIGHT_MAX 1000000L +#define PNG_sCAL_PRECISION 5 +#define PNG_COST_SHIFT 3 +#define PNG_WEIGHT_SHIFT 8 +#define PNG_USER_CHUNK_MALLOC_MAX 0 +#define PNG_DEFAULT_READ_MACROS 1 +#define PNG_ZBUF_SIZE 8192 +#define PNG_GAMMA_THRESHOLD_FIXED 5000 +/* end of settings */ +/* options */ +#define PNG_INFO_IMAGE_SUPPORTED +#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +#define PNG_POINTER_INDEXING_SUPPORTED +#define PNG_WARNINGS_SUPPORTED +#define PNG_FLOATING_ARITHMETIC_SUPPORTED +#define PNG_WRITE_SUPPORTED +#define PNG_WRITE_INTERLACING_SUPPORTED +#define PNG_WRITE_16BIT_SUPPORTED +#define PNG_EASY_ACCESS_SUPPORTED +#define PNG_ALIGN_MEMORY_SUPPORTED +#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_USER_LIMITS_SUPPORTED +#define PNG_FIXED_POINT_SUPPORTED +/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ +#define PNG_ERROR_TEXT_SUPPORTED +#define PNG_READ_SUPPORTED +/*#undef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED*/ +#define PNG_BENIGN_ERRORS_SUPPORTED +#define PNG_SETJMP_SUPPORTED +#define PNG_WRITE_FLUSH_SUPPORTED +#define PNG_MNG_FEATURES_SUPPORTED +#define PNG_FLOATING_POINT_SUPPORTED +#define PNG_INCH_CONVERSIONS_SUPPORTED +#define PNG_STDIO_SUPPORTED +#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_USER_MEM_SUPPORTED +#define PNG_IO_STATE_SUPPORTED +#define PNG_SET_USER_LIMITS_SUPPORTED +#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED +#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_WRITE_FILTER_SUPPORTED +#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED +#define PNG_WRITE_iCCP_SUPPORTED +#define PNG_READ_TRANSFORMS_SUPPORTED +#define PNG_READ_GAMMA_SUPPORTED +#define PNG_READ_bKGD_SUPPORTED +#define PNG_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_READ_sCAL_SUPPORTED +#define PNG_WRITE_hIST_SUPPORTED +#define PNG_READ_OPT_PLTE_SUPPORTED +#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED +#define PNG_WRITE_gAMA_SUPPORTED +#define PNG_READ_GRAY_TO_RGB_SUPPORTED +#define PNG_WRITE_pCAL_SUPPORTED +#define PNG_READ_INVERT_ALPHA_SUPPORTED +#define PNG_WRITE_TRANSFORMS_SUPPORTED +#define PNG_READ_sBIT_SUPPORTED +#define PNG_READ_PACK_SUPPORTED +#define PNG_WRITE_SWAP_SUPPORTED +#define PNG_READ_cHRM_SUPPORTED +#define PNG_WRITE_tIME_SUPPORTED +#define PNG_READ_INTERLACING_SUPPORTED +#define PNG_READ_tRNS_SUPPORTED +#define PNG_WRITE_pHYs_SUPPORTED +#define PNG_WRITE_INVERT_SUPPORTED +#define PNG_READ_RGB_TO_GRAY_SUPPORTED +#define PNG_WRITE_sRGB_SUPPORTED +#define PNG_READ_oFFs_SUPPORTED +#define PNG_WRITE_FILLER_SUPPORTED +#define PNG_WRITE_TEXT_SUPPORTED +#define PNG_WRITE_SHIFT_SUPPORTED +#define PNG_PROGRESSIVE_READ_SUPPORTED +#define PNG_READ_SHIFT_SUPPORTED +#define PNG_CONVERT_tIME_SUPPORTED +#define PNG_READ_USER_TRANSFORM_SUPPORTED +#define PNG_READ_INT_FUNCTIONS_SUPPORTED +#define PNG_READ_USER_CHUNKS_SUPPORTED +#define PNG_READ_hIST_SUPPORTED +#define PNG_READ_16BIT_SUPPORTED +#define PNG_READ_SWAP_ALPHA_SUPPORTED +#define PNG_READ_COMPOSITE_NODIV_SUPPORTED +#define PNG_SEQUENTIAL_READ_SUPPORTED +#define PNG_READ_BACKGROUND_SUPPORTED +#define PNG_READ_QUANTIZE_SUPPORTED +#define PNG_READ_iCCP_SUPPORTED +#define PNG_READ_STRIP_ALPHA_SUPPORTED +#define PNG_READ_PACKSWAP_SUPPORTED +#define PNG_READ_sRGB_SUPPORTED +#define PNG_WRITE_tEXt_SUPPORTED +#define PNG_READ_gAMA_SUPPORTED +#define PNG_READ_pCAL_SUPPORTED +#define PNG_READ_EXPAND_SUPPORTED +#define PNG_WRITE_sPLT_SUPPORTED +#define PNG_READ_SWAP_SUPPORTED +#define PNG_READ_tIME_SUPPORTED +#define PNG_READ_pHYs_SUPPORTED +#define PNG_WRITE_SWAP_ALPHA_SUPPORTED +#define PNG_TIME_RFC1123_SUPPORTED +#define PNG_READ_TEXT_SUPPORTED +#define PNG_WRITE_BGR_SUPPORTED +#define PNG_USER_CHUNKS_SUPPORTED +#define PNG_CONSOLE_IO_SUPPORTED +#define PNG_WRITE_PACK_SUPPORTED +#define PNG_READ_FILLER_SUPPORTED +#define PNG_WRITE_bKGD_SUPPORTED +#define PNG_WRITE_tRNS_SUPPORTED +#define PNG_READ_sPLT_SUPPORTED +#define PNG_WRITE_sCAL_SUPPORTED +#define PNG_WRITE_oFFs_SUPPORTED +#define PNG_READ_tEXt_SUPPORTED +#define PNG_WRITE_sBIT_SUPPORTED +#define PNG_READ_INVERT_SUPPORTED +#define PNG_READ_16_TO_8_SUPPORTED +#define PNG_WRITE_cHRM_SUPPORTED +#define PNG_16BIT_SUPPORTED +#define PNG_WRITE_USER_TRANSFORM_SUPPORTED +#define PNG_READ_BGR_SUPPORTED +#define PNG_WRITE_PACKSWAP_SUPPORTED +#define PNG_WRITE_INVERT_ALPHA_SUPPORTED +#define PNG_sCAL_SUPPORTED +#define PNG_WRITE_zTXt_SUPPORTED +#define PNG_sBIT_SUPPORTED +#define PNG_cHRM_SUPPORTED +#define PNG_bKGD_SUPPORTED +#define PNG_tRNS_SUPPORTED +#define PNG_WRITE_iTXt_SUPPORTED +#define PNG_oFFs_SUPPORTED +#define PNG_USER_TRANSFORM_PTR_SUPPORTED +#define PNG_USER_TRANSFORM_INFO_SUPPORTED +#define PNG_hIST_SUPPORTED +#define PNG_iCCP_SUPPORTED +#define PNG_sRGB_SUPPORTED +#define PNG_READ_zTXt_SUPPORTED +#define PNG_gAMA_SUPPORTED +#define PNG_pCAL_SUPPORTED +#define PNG_CHECK_cHRM_SUPPORTED +#define PNG_tIME_SUPPORTED +#define PNG_pHYs_SUPPORTED +#define PNG_READ_iTXt_SUPPORTED +#define PNG_TEXT_SUPPORTED +#define PNG_SAVE_INT_32_SUPPORTED +#define PNG_sPLT_SUPPORTED +#define PNG_tEXt_SUPPORTED +#define PNG_zTXt_SUPPORTED +#define PNG_iTXt_SUPPORTED +/* end of options */ +#endif /* PNGLCONF_H */ diff --git a/contrib/qrencode-win32/vc8/qrcode/png/zlib.lib b/contrib/qrencode-win32/vc8/qrcode/png/zlib.lib new file mode 100644 index 0000000000000000000000000000000000000000..b989fdb53553208b3a8da0019d77e39b9c704f9c GIT binary patch literal 116344 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/zlib1.dll b/contrib/qrencode-win32/vc8/qrcode/png/zlib1.dll new file mode 100644 index 0000000000000000000000000000000000000000..97b1f8d8a0bba8231a4da68dbb49932f44bf096c GIT binary patch literal 77824 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/zlib1.lib b/contrib/qrencode-win32/vc8/qrcode/png/zlib1.lib new file mode 100644 index 0000000000000000000000000000000000000000..855f716346b932d82221fbe0f6b3fc580acd3437 GIT binary patch literal 13214 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/zlib1d.dll b/contrib/qrencode-win32/vc8/qrcode/png/zlib1d.dll new file mode 100644 index 0000000000000000000000000000000000000000..e20896ca9ab3ef9063cdb7bc160a098dd2d984b3 GIT binary patch literal 159744 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 E02wvnu>b%7 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/zlib1d.lib b/contrib/qrencode-win32/vc8/qrcode/png/zlib1d.lib new file mode 100644 index 0000000000000000000000000000000000000000..b72362859741efb2140a00c6d8e8ee5dedf67a4d GIT binary patch literal 13298 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 L*#?^&N3sY2U_qTV literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/png/zlibd.lib b/contrib/qrencode-win32/vc8/qrcode/png/zlibd.lib new file mode 100644 index 0000000000000000000000000000000000000000..53c800d4b9af14df1b35430046d3081670e637ac GIT binary patch literal 292360 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%0AOG6kR=cNvLA5W_*{ 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%0A#ep83?9xw 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 ZuHj8E$Yv<`oHi`o!{p-`&_zJ|jsT!nX+{75 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcode/qrcode.cpp b/contrib/qrencode-win32/vc8/qrcode/qrcode.cpp new file mode 100644 index 0000000..2770f77 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/qrcode.cpp @@ -0,0 +1,12 @@ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "png/png.h" +#include "getopt.h" + +#define strcasecmp strcmpi +#if _MSC_VER < 1900 +#define snprintf sprintf_s +#endif +#include "..\..\qrenc.c" diff --git a/contrib/qrencode-win32/vc8/qrcode/qrcode.vcproj b/contrib/qrencode-win32/vc8/qrcode/qrcode.vcproj new file mode 100644 index 0000000..0b3cbbf --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/qrcode.vcproj @@ -0,0 +1,446 @@ +<?xml version="1.0" encoding="windows-1251"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="qrcode" + ProjectGUID="{3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}" + RootNamespace="qrcode" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug-Dll|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories=".\,.\png" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="qrcodelib.lib libpng15d.lib" + LinkIncremental="2" + AdditionalLibraryDirectories="..\.build\debug-dll;.\png" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release-Dll|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories=".\,.\png" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="qrcodelib.lib libpng15.lib" + LinkIncremental="1" + AdditionalLibraryDirectories="..\.build\release-dll;.\png" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug-Lib|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories=".\,.\png" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="qrcodelib.lib libpngd.lib zlibd.lib" + LinkIncremental="2" + AdditionalLibraryDirectories="..\.build\debug-lib;.\png" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release-Lib|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories=".\,.\png" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="0" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="qrcodelib.lib libpng.lib zlib.lib" + LinkIncremental="1" + AdditionalLibraryDirectories="..\.build\release-lib;.\png" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath=".\getopt.c" + > + <FileConfiguration + Name="Debug-Dll|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="0" + /> + </FileConfiguration> + <FileConfiguration + Name="Release-Dll|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="0" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug-Lib|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="0" + /> + </FileConfiguration> + <FileConfiguration + Name="Release-Lib|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="0" + /> + </FileConfiguration> + </File> + <File + RelativePath=".\qrcode.cpp" + > + </File> + <File + RelativePath="..\..\qrenc.c" + > + <FileConfiguration + Name="Debug-Dll|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release-Dll|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug-Lib|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + <FileConfiguration + Name="Release-Lib|Win32" + ExcludedFromBuild="true" + > + <Tool + Name="VCCLCompilerTool" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath=".\config.h" + > + </File> + <File + RelativePath=".\getopt.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + <File + RelativePath=".\ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/contrib/qrencode-win32/vc8/qrcode/qrcode.vcxproj b/contrib/qrencode-win32/vc8/qrcode/qrcode.vcxproj new file mode 100644 index 0000000..6ab8572 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/qrcode.vcxproj @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-Dll|Win32"> + <Configuration>Debug-Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-Lib|Win32"> + <Configuration>Debug-Lib</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-Dll|Win32"> + <Configuration>Release-Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-Lib|Win32"> + <Configuration>Release-Lib</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}</ProjectGuid> + <RootNamespace>qrcode</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <UseOfMfc>false</UseOfMfc> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>14.0.25420.1</_ProjectFileVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.\;.\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>qrcodelib.lib;libpng15d.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\.build\debug-dll;.\png;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + <ClCompile> + <AdditionalIncludeDirectories>.\;.\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>qrcodelib.lib;libpng15.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\.build\release-dll;.\png;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.\;.\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>qrcodelib.lib;libpngd.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\.build\debug-lib;.\png;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + <ClCompile> + <AdditionalIncludeDirectories>.\;.\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>qrcodelib.lib;libpng.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\.build\release-lib;.\png;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\qrenc.c"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'">true</ExcludedFromBuild> + </ClCompile> + <ClCompile Include="getopt.c"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'">true</ExcludedFromBuild> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + </PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + </PrecompiledHeader> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'">true</ExcludedFromBuild> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + </PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + </PrecompiledHeader> + </ClCompile> + <ClCompile Include="qrcode.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="config.h" /> + <ClInclude Include="getopt.h" /> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\qrcodelib\qrcodelib.vcxproj"> + <Project>{9a90bf5c-84b0-41f6-b83c-c20eadc1f46c}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/qrcode/qrcode.vcxproj.filters b/contrib/qrencode-win32/vc8/qrcode/qrcode.vcxproj.filters new file mode 100644 index 0000000..f8e636b --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode/qrcode.vcxproj.filters @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="getopt.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="qrcode.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\qrenc.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="config.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="getopt.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/qrcode_vc11.sln b/contrib/qrencode-win32/vc8/qrcode_vc11.sln new file mode 100644 index 0000000..54e475a --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcode_vc11.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcodelib", "qrcodelib\qrcodelib.vcxproj", "{9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcode", "qrcode\qrcode.vcxproj", "{3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcodegui", "qrcodegui\qrcodegui.vcxproj", "{B77F9451-3595-427C-9366-A8D82F27B33B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcodecon", "qrcodecon\qrcodecon.vcxproj", "{0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug-Dll|Win32 = Debug-Dll|Win32 + Debug-Lib|Win32 = Debug-Lib|Win32 + Release-Dll|Win32 = Release-Dll|Win32 + Release-Lib|Win32 = Release-Lib|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dll|Win32.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dll|Win32.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Lib|Win32.ActiveCfg = Debug-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Lib|Win32.Build.0 = Debug-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dll|Win32.ActiveCfg = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dll|Win32.Build.0 = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|Win32.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|Win32.Build.0 = Release-Lib|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Debug-Dll|Win32.ActiveCfg = Debug-Dll|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Debug-Dll|Win32.Build.0 = Debug-Dll|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Debug-Lib|Win32.ActiveCfg = Debug-Lib|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Debug-Lib|Win32.Build.0 = Debug-Lib|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Release-Dll|Win32.ActiveCfg = Release-Dll|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Release-Dll|Win32.Build.0 = Release-Dll|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Release-Lib|Win32.ActiveCfg = Release-Lib|Win32 + {3879D0C5-FBCC-44F0-BA31-A2D3EE20D497}.Release-Lib|Win32.Build.0 = Release-Lib|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Debug-Dll|Win32.ActiveCfg = Debug-Dll|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Debug-Dll|Win32.Build.0 = Debug-Dll|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Debug-Lib|Win32.ActiveCfg = Debug-Lib|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Debug-Lib|Win32.Build.0 = Debug-Lib|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Release-Dll|Win32.ActiveCfg = Release-Dll|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Release-Dll|Win32.Build.0 = Release-Dll|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Release-Lib|Win32.ActiveCfg = Release-Lib|Win32 + {B77F9451-3595-427C-9366-A8D82F27B33B}.Release-Lib|Win32.Build.0 = Release-Lib|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Debug-Dll|Win32.ActiveCfg = Debug-Dll|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Debug-Dll|Win32.Build.0 = Debug-Dll|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Debug-Lib|Win32.ActiveCfg = Debug-Lib|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Debug-Lib|Win32.Build.0 = Debug-Lib|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Release-Dll|Win32.ActiveCfg = Release-Dll|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Release-Dll|Win32.Build.0 = Release-Dll|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Release-Lib|Win32.ActiveCfg = Release-Lib|Win32 + {0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}.Release-Lib|Win32.Build.0 = Release-Lib|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.cpp b/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.cpp new file mode 100644 index 0000000..866ca09 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.cpp @@ -0,0 +1,156 @@ +// qrcodecon.cpp : Defines the entry point for the console application. +// + +#include "stdafx.h" + +#define MAX_DATA_SIZE (7090 * 16) /* from the specification */ +#define CMD_SIZE (MAX_DATA_SIZE + 4096) /* from the specification */ + + +BOOL IsOption(wchar_t *p); +BOOL IsOptionWithParameter(wchar_t *p); +wchar_t *readStdin(); + +int _tmain(int argc, _TCHAR* argv[]) +{ + char bufOut[CMD_SIZE] = {0}; + TCHAR bufCmd[CMD_SIZE] = {0}; + TCHAR *intext = NULL; + if(argc == 1) + wcsncat_s(bufCmd, L"qrcode.exe -h", CMD_SIZE); + else + wcsncat_s(bufCmd, L"qrcode.exe", CMD_SIZE); + + int i; + for(i = 1; i < argc; i++) + { + if(!IsOption(argv[i])) + break; + + wcsncat_s(bufCmd, L" ", CMD_SIZE); + wcsncat_s(bufCmd, argv[i], CMD_SIZE); + if(IsOptionWithParameter(argv[i]) && (i + 1 < argc)) + { + i++; + wcsncat_s(bufCmd, L" ", CMD_SIZE); + wcsncat_s(bufCmd, argv[i], CMD_SIZE); + } + } + + if(i < argc) + { + wcsncat_s(bufCmd, L" \"", CMD_SIZE); + wcsncat_s(bufCmd, argv[i], CMD_SIZE); + wcsncat_s(bufCmd, L"\"", CMD_SIZE); + } + else + { + intext = readStdin(); + wcsncat_s(bufCmd, L" \"", CMD_SIZE); + wcsncat_s(bufCmd, intext, CMD_SIZE); + wcsncat_s(bufCmd, L"\"", CMD_SIZE); + } + + DWORD len = ::WideCharToMultiByte(CP_UTF8, 0, bufCmd, wcslen(bufCmd), bufOut, CMD_SIZE, NULL, NULL); + + STARTUPINFOA si; + PROCESS_INFORMATION pi; + + ZeroMemory( &si, sizeof(si) ); + si.cb = sizeof(si); + ZeroMemory( &pi, sizeof(pi) ); + + // Start the child process. + if( !CreateProcessA( NULL, // No module name (use command line) + bufOut, // Command line + NULL, // Process handle not inheritable + NULL, // Thread handle not inheritable + TRUE, // Set handle inheritance to FALSE + 0, + NULL, // Use parent's environment block + NULL, // Use parent's starting directory + &si, // Pointer to STARTUPINFO structure + &pi ) // Pointer to PROCESS_INFORMATION structure + ) + { + return FALSE; + } + + // Wait until child process exits. + WaitForSingleObject( pi.hProcess, INFINITE ); + + // Close process and thread handles. + CloseHandle( pi.hProcess ); + CloseHandle( pi.hThread ); + + return 0; +} + +BOOL IsOption(wchar_t *arg) +{ + if( (!wcscmp(arg, L"-h")) || + (!wcscmp(arg, L"--help")) || + + (!wcscmp(arg, L"-o")) || + (!wcscmp(arg, L"-s")) || + (!wcscmp(arg, L"-l")) || + (!wcscmp(arg, L"-v")) || + (!wcscmp(arg, L"-m")) || + (!wcscmp(arg, L"-d")) || + (!wcscmp(arg, L"-t")) || + + (!wcscmp(arg, L"-S")) || + (!wcscmp(arg, L"-k")) || + (!wcscmp(arg, L"-c")) || + (!wcscmp(arg, L"-i")) || + (!wcscmp(arg, L"-8")) || + (!wcscmp(arg, L"-M")) || + (!wcscmp(arg, L"-V")) + ) + { + return TRUE; + } + + return FALSE; +} + +BOOL IsOptionWithParameter(wchar_t *arg) +{ + if( (!wcscmp(arg, L"-o")) || + (!wcscmp(arg, L"-s")) || + (!wcscmp(arg, L"-l")) || + (!wcscmp(arg, L"-v")) || + (!wcscmp(arg, L"-m")) || + (!wcscmp(arg, L"-d")) || + (!wcscmp(arg, L"-t")) + ) + { + return TRUE; + } + + return FALSE; +} + +static wchar_t *readStdin() +{ + char buffer[MAX_DATA_SIZE]; + static wchar_t bufferOut[MAX_DATA_SIZE]; + memset(bufferOut, 0, sizeof(bufferOut)); + int ret; + + ret = fread(buffer, 1, MAX_DATA_SIZE, stdin); + if(ret == 0) { + fprintf(stderr, "No input data.\n"); + return L""; + } + if(feof(stdin) == 0) { + fprintf(stderr, "Input data is too large.\n"); + return L""; + } + + buffer[ret] = '\0'; + + ::MultiByteToWideChar(CP_OEMCP, 0, buffer, ret, bufferOut, MAX_DATA_SIZE); + + return bufferOut; +} \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcproj b/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcproj new file mode 100644 index 0000000..4ae12df --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcproj @@ -0,0 +1,391 @@ +<?xml version="1.0" encoding="windows-1251"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="qrcodecon" + ProjectGUID="{0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}" + RootNamespace="qrcodecon" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug-Lib|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release-Lib|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="0" + UsePrecompiledHeader="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release-Dll|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="2" + UsePrecompiledHeader="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug-Dll|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath=".\qrcodecon.cpp" + > + </File> + <File + RelativePath=".\stdafx.cpp" + > + <FileConfiguration + Name="Debug-Lib|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Release-Lib|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Release-Dll|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug-Dll|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath=".\stdafx.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + <File + RelativePath=".\ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcxproj b/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcxproj new file mode 100644 index 0000000..f8416fe --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcxproj @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-Dll|Win32"> + <Configuration>Debug-Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-Lib|Win32"> + <Configuration>Debug-Lib</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-Dll|Win32"> + <Configuration>Release-Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-Lib|Win32"> + <Configuration>Release-Lib</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{0346F4B4-9908-43DA-BEDE-2F1BE6AFDF50}</ProjectGuid> + <RootNamespace>qrcodecon</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>14.0.25420.1</_ProjectFileVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + <ClCompile> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + <ClCompile> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="qrcodecon.cpp" /> + <ClCompile Include="stdafx.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="stdafx.h" /> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcxproj.filters b/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcxproj.filters new file mode 100644 index 0000000..528e36e --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodecon/qrcodecon.vcxproj.filters @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="qrcodecon.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/qrcodecon/stdafx.cpp b/contrib/qrencode-win32/vc8/qrcodecon/stdafx.cpp new file mode 100644 index 0000000..8ca4a4d --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodecon/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// qrcodecon.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/contrib/qrencode-win32/vc8/qrcodecon/stdafx.h b/contrib/qrencode-win32/vc8/qrcodecon/stdafx.h new file mode 100644 index 0000000..2fe56b7 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodecon/stdafx.h @@ -0,0 +1,12 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +#include <stdio.h> +#include <tchar.h> +#include <Windows.h> diff --git a/contrib/qrencode-win32/vc8/qrcodegui.png b/contrib/qrencode-win32/vc8/qrcodegui.png new file mode 100644 index 0000000000000000000000000000000000000000..c124f5e7cbfc3f367b05c34b9cee594664dd0929 GIT binary patch literal 23860 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcodegui/FileUtils.cpp b/contrib/qrencode-win32/vc8/qrcodegui/FileUtils.cpp new file mode 100644 index 0000000..3bafa1f --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/FileUtils.cpp @@ -0,0 +1,205 @@ +#include "StdAfx.h" +#include "FileUtils.h" + +CString FileUtils::GetIniValue(CString strKey) +{ + CheckCreateIni(); + + wchar_t buf[1024]; + GetPrivateProfileString(L"qrcodegui", strKey, L"", buf, 1024, m_strIniFile); + + return CString(buf); +} + +void FileUtils::SetIniValue(CString strKey, CString strValue) +{ + CheckCreateIni(); + + WritePrivateProfileString(L"qrcodegui", strKey, strValue, m_strIniFile); +} + +void FileUtils::CheckCreateIni() +{ + if(!m_strIniFile.IsEmpty()) + return; + + wchar_t path[1024]; + CString strPath; + SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, path); + strPath = path; + + m_strIniFile = strPath; + m_strIniFile += L"\\QRCodeGui\\Settings.ini"; + + if(INVALID_FILE_ATTRIBUTES == GetFileAttributes(m_strIniFile)) + { + strPath += L"\\QRCodeGui"; + ::CreateDirectory(strPath, NULL); + + strPath += L"\\Settings.ini"; + HANDLE hFile = ::CreateFile(strPath, + GENERIC_WRITE, // open for writing + 0, // do not share + NULL, // default security + CREATE_NEW, // create new file only + FILE_ATTRIBUTE_NORMAL, // normal file + NULL); + + if(hFile != INVALID_HANDLE_VALUE) + { + DWORD dwWritten; + char buf[] = "[qrcodegui]\noutputx=20\noutputy=20\nwinx=20\nwiny=20\nwinw=400\nwinh=300\npixel=3\nmargin=3\nlevel=L"; + ::WriteFile(hFile, buf, sizeof(buf), &dwWritten, NULL); + ::CloseHandle(hFile); + } + } +} + +FileSession::FileSession() +{ + m_strTextFile = L""; + m_strImageFile = L""; + m_strResultFile = L""; +} + +FileSession::~FileSession() +{ + Reset(); +} + + +void FileSession::Reset() +{ + m_strErrorMsg = L""; + + if(!m_strTextFile.IsEmpty()) + ::DeleteFile(m_strTextFile); + + if(!m_strImageFile.IsEmpty()) + ::DeleteFile(m_strImageFile); + + if(!m_strResultFile.IsEmpty()) + ::DeleteFile(m_strResultFile); +} + + +void FileSession::CopyImageTo(CString strNewPath) +{ + if(!m_strImageFile.IsEmpty()) + ::CopyFile(m_strImageFile, strNewPath, FALSE); +} + +BOOL FileSession::RunQRcode(CString strPixel, CString strMargin, CString strError, long fgcolor, long bgcolor) +{ + CString strCmd; + CString strFgColorPart; + CString strBgColorPart; + if(fgcolor) + strFgColorPart.Format(L"--foreground=%06X ", fgcolor); + if(bgcolor) + strBgColorPart.Format(L"--background=%06X ", bgcolor); + + strCmd.Format(L"cmd.exe /c qrcode.exe %s%s-s %s -m %s -l %c -o %s 2> %s < %s", + strFgColorPart, + strBgColorPart, + strPixel, + strMargin, + strError[0], + m_strImageFile, + m_strResultFile, + m_strTextFile + ); + + STARTUPINFO si; + PROCESS_INFORMATION pi; + + ZeroMemory( &si, sizeof(si) ); + si.cb = sizeof(si); + ZeroMemory( &pi, sizeof(pi) ); + + // Start the child process. + if( !CreateProcess( NULL, // No module name (use command line) + const_cast<LPWSTR>((LPCWSTR)strCmd), // Command line + NULL, // Process handle not inheritable + NULL, // Thread handle not inheritable + FALSE, // Set handle inheritance to FALSE + CREATE_NO_WINDOW, + NULL, // Use parent's environment block + NULL, // Use parent's starting directory + &si, // Pointer to STARTUPINFO structure + &pi ) // Pointer to PROCESS_INFORMATION structure + ) + { + return FALSE; + } + + // Wait until child process exits. + WaitForSingleObject( pi.hProcess, INFINITE ); + + // Close process and thread handles. + CloseHandle( pi.hProcess ); + CloseHandle( pi.hThread ); + + return TRUE; +} + +BOOL FileSession::Generate(CString strPixel, CString strMargin, CString strError, CString strText, long fgcolor, long bgcolor) +{ + Reset(); + + DWORD dwWritten = 0; + long micro_version = 0; + wchar_t lpTempPathBuffer[MAX_PATH]; + wchar_t szTempFileName[MAX_PATH]; + GetTempPath(MAX_PATH, lpTempPathBuffer); + + GetTempFileName(lpTempPathBuffer, TEXT("QRT"), 0, szTempFileName); + m_strTextFile = szTempFileName; + + char buf[7*32*1024]; + DWORD len = ::WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)strText, strText.GetLength(), buf, 7*32*1024, NULL, NULL); + + if(!len) + { + m_strErrorMsg = "Conversion to UTF-8 string failed."; + return FALSE; + } + + HANDLE hFile = ::CreateFile(m_strTextFile, GENERIC_WRITE, 0, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + ::WriteFile(hFile, buf, len, &dwWritten, NULL); + ::CloseHandle(hFile); + + GetTempFileName(lpTempPathBuffer, TEXT("QRI"), 0, szTempFileName); + m_strImageFile = szTempFileName; + + GetTempFileName(lpTempPathBuffer, TEXT("QRR"), 0, szTempFileName); + m_strResultFile = szTempFileName; + + if(!RunQRcode(strPixel, strMargin, strError, fgcolor, bgcolor)) + { + m_strErrorMsg = "QRCode.exe execution failed."; + return FALSE; + } + + { + char buf[32*1024]; + DWORD dwRead = 0; + HANDLE hFile = ::CreateFile(m_strResultFile, GENERIC_READ, 0, NULL, + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + ::ReadFile(hFile, buf, 32*1024, &dwRead, NULL); + ::CloseHandle(hFile); + if(dwRead) + { + wchar_t bufw[32*1024]; + ZeroMemory(bufw, 32*1024*sizeof(wchar_t)); + ::MultiByteToWideChar(CP_OEMCP, 0, buf, dwRead, bufw, 32*1024); + m_strErrorMsg = bufw; + return FALSE; + } + } + + return TRUE; +} + + diff --git a/contrib/qrencode-win32/vc8/qrcodegui/FileUtils.h b/contrib/qrencode-win32/vc8/qrcodegui/FileUtils.h new file mode 100644 index 0000000..65a9ef1 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/FileUtils.h @@ -0,0 +1,39 @@ +#pragma once + +class FileUtils +{ +public: + FileUtils(void) { m_strIniFile = L""; }; + ~FileUtils(void) {}; + + CString GetIniValue(CString strKey); + void SetIniValue(CString strKey, CString strValue); + + void CheckCreateIni(); + +protected: + CString m_strIniFile; +}; + +class FileSession +{ +public: + FileSession(); + ~FileSession(); + + void Reset(); + BOOL Generate(CString strPixel, CString strMargin, CString strError, CString strText, long fgcolor, long bgcolor); + + void CopyImageTo(CString strNewPath); + CString GetErrorMessage() { return m_strErrorMsg; }; + CString GetImagePath() { return m_strImageFile; }; +protected: + BOOL RunQRcode(CString strPixel, CString strMargin, CString strError, long fgcolor, long bgcolor); + +protected: + CString m_strTextFile; + CString m_strImageFile; + CString m_strResultFile; + + CString m_strErrorMsg; +}; diff --git a/contrib/qrencode-win32/vc8/qrcodegui/ReadMe.txt b/contrib/qrencode-win32/vc8/qrcodegui/ReadMe.txt new file mode 100644 index 0000000..ab664e2 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/ReadMe.txt @@ -0,0 +1,55 @@ +======================================================================== + WIN32 APPLICATION : qrcodegui Project Overview +======================================================================== + +AppWizard has created this qrcodegui application for you. + +This file contains a summary of what you will find in each of the files that +make up your qrcodegui application. + + +qrcodegui.vcproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +qrcodegui.cpp + This is the main application source file. + +///////////////////////////////////////////////////////////////////////////// +AppWizard has created the following resources: + +qrcodegui.rc + This is a listing of all of the Microsoft Windows resources that the + program uses. It includes the icons, bitmaps, and cursors that are stored + in the RES subdirectory. This file can be directly edited in Microsoft + Visual C++. + +Resource.h + This is the standard header file, which defines new resource IDs. + Microsoft Visual C++ reads and updates this file. + +qrcodegui.ico + This is an icon file, which is used as the application's icon (32x32). + This icon is included by the main resource file qrcodegui.rc. + +small.ico + This is an icon file, which contains a smaller version (16x16) + of the application's icon. This icon is included by the main resource + file qrcodegui.rc. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named qrcodegui.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.cpp b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.cpp new file mode 100644 index 0000000..57e8103 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.cpp @@ -0,0 +1,317 @@ +// qrcodegui.cpp : Defines the entry point for the application. +// + +#include "stdafx.h" +#include "qrcodegui.h" +using namespace Gdiplus; + +#define MAX_LOADSTRING 100 + +// Global Variables: +HINSTANCE hInst; // current instance +TCHAR szTitle[MAX_LOADSTRING]; // The title bar text +TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name +FileSession *gpFileSession = NULL; +GdiplusStartupInput gdiplusStartupInput; +ULONG_PTR gdiplusToken; + + +// Forward declarations of functions included in this code module: +INT_PTR CALLBACK MainWnd(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK ImageWnd(HWND, UINT, WPARAM, LPARAM); +long FixColor(wchar_t*szColor); +void DrawColoredRect(HWND, long, long); + + + +int APIENTRY _tWinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPTSTR lpCmdLine, + int nCmdShow) +{ + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + hInst = hInstance; + + wchar_t szPath[MAX_PATH] = {0}; + GetModuleFileName( NULL, szPath, MAX_PATH); + CString strPath = szPath; + int pos = strPath.ReverseFind('\\'); + SetCurrentDirectory(strPath.Left(pos)); + + GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); + gpFileSession = new FileSession; + + DialogBox(hInst, MAKEINTRESOURCE(IDD_MAIN), NULL, MainWnd); + + delete gpFileSession; + gpFileSession = NULL; + + GdiplusShutdown(gdiplusToken); + + return 0; +} + +INT_PTR CALLBACK MainWnd(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_GETMINMAXINFO: + MINMAXINFO mmi; + memcpy(&mmi, (void*)lParam, sizeof(mmi)); + mmi.ptMinTrackSize.x = 250; + mmi.ptMinTrackSize.y = 200; + memcpy((void*)lParam, &mmi, sizeof(mmi)); + return 0; + case WM_SIZE: + { + if(wParam != SIZE_RESTORED) + return (INT_PTR)FALSE; + + LayoutCalc lc(LOWORD(lParam), HIWORD(lParam)); + SetWindowPos(GetDlgItem(hDlg, IDC_EDIT_TEXT), NULL, lc.x1(), lc.y1(), lc.w1(), lc.h1(), SWP_NOZORDER); + SetWindowPos(GetDlgItem(hDlg, IDOK), NULL, lc.x2(), lc.y2(), lc.w2(), lc.h2(), SWP_NOZORDER); + SetWindowPos(GetDlgItem(hDlg, IDCANCEL), NULL, lc.x3(), lc.y3(), lc.w3(), lc.h3(), SWP_NOZORDER); + } + return (INT_PTR)TRUE; + case WM_INITDIALOG: + { + FileUtils fu; + SetWindowText(GetDlgItem(hDlg, IDC_EDIT_PIXEL), fu.GetIniValue(L"pixel")); + SetWindowText(GetDlgItem(hDlg, IDC_EDIT_MARGIN), fu.GetIniValue(L"margin")); + SetWindowText(GetDlgItem(hDlg, IDC_EDIT_FGCOLOR), fu.GetIniValue(L"fgcolor").IsEmpty() ? L"#000000" : fu.GetIniValue(L"fgcolor")); + SetWindowText(GetDlgItem(hDlg, IDC_EDIT_BGCOLOR), fu.GetIniValue(L"bgcolor").IsEmpty() ? L"#FFFFFF" : fu.GetIniValue(L"bgcolor")); + + SendMessage(GetDlgItem(hDlg, IDC_COMBO_LEVEL), CB_ADDSTRING, 0, (LPARAM)L"L (lowest)"); + SendMessage(GetDlgItem(hDlg, IDC_COMBO_LEVEL), CB_ADDSTRING, 0, (LPARAM)L"M"); + SendMessage(GetDlgItem(hDlg, IDC_COMBO_LEVEL), CB_ADDSTRING, 0, (LPARAM)L"Q"); + SendMessage(GetDlgItem(hDlg, IDC_COMBO_LEVEL), CB_ADDSTRING, 0, (LPARAM)L"H (highest)"); + SendMessage(GetDlgItem(hDlg, IDC_COMBO_LEVEL), CB_SELECTSTRING, 0, (LPARAM)(LPCWSTR)fu.GetIniValue(L"level")); + + SetWindowPos(hDlg, NULL, + _wtoi(fu.GetIniValue(L"winx")), + _wtoi(fu.GetIniValue(L"winy")), + _wtoi(fu.GetIniValue(L"winw")), + _wtoi(fu.GetIniValue(L"winh")), + SWP_NOZORDER); + + HICON hIcon = LoadIcon (hInst, MAKEINTRESOURCE (IDI_QRCODEGUI)); + SendMessage (hDlg, WM_SETICON, WPARAM (ICON_SMALL), LPARAM (hIcon)); + EnableWindow(GetDlgItem(hDlg, IDOK), FALSE); + } + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDCANCEL) + { + FileUtils fu; + RECT rc; + GetWindowRect(hDlg, &rc); + wchar_t buf[100]; + _itow_s(rc.left, buf, 100, 10); + fu.SetIniValue(L"winx", buf); + _itow_s(rc.top, buf, 100, 10); + fu.SetIniValue(L"winy", buf); + _itow_s(rc.right - rc.left, buf, 100, 10); + fu.SetIniValue(L"winw", buf); + _itow_s(rc.bottom - rc.top, buf, 100, 10); + fu.SetIniValue(L"winh", buf); + + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + + if (LOWORD(wParam) == IDOK) + { + wchar_t szPixel[1024]; + wchar_t szMargin[1024]; + wchar_t szLevel[1024]; + wchar_t szFgColor[1024]; + wchar_t szBgColor[1024]; + wchar_t szText[32*1024]; + GetWindowText(GetDlgItem(hDlg, IDC_EDIT_PIXEL), szPixel, 1024); + GetWindowText(GetDlgItem(hDlg, IDC_EDIT_MARGIN), szMargin, 1024); + GetWindowText(GetDlgItem(hDlg, IDC_COMBO_LEVEL), szLevel, 1024); + GetWindowText(GetDlgItem(hDlg, IDC_EDIT_FGCOLOR), szFgColor, 1024); + GetWindowText(GetDlgItem(hDlg, IDC_EDIT_BGCOLOR), szBgColor, 1024); + GetWindowText(GetDlgItem(hDlg, IDC_EDIT_TEXT), szText, 32*1024); + BOOL bRes = gpFileSession->Generate(szPixel, szMargin, szLevel, szText, FixColor(szFgColor), FixColor(szBgColor)); + if(bRes) + { + DialogBox(hInst, MAKEINTRESOURCE(IDD_IMAGE), hDlg, ImageWnd); + } + else + { + MessageBox(hDlg, gpFileSession->GetErrorMessage(), szTitle, MB_OK | MB_ICONERROR); + } + + FileUtils fu; + fu.SetIniValue(L"pixel", szPixel); + fu.SetIniValue(L"margin", szMargin); + fu.SetIniValue(L"level", szLevel); + fu.SetIniValue(L"fgcolor",szFgColor); + fu.SetIniValue(L"bgcolor",szBgColor); + + return (INT_PTR)TRUE; + } + if ((HIWORD(wParam) == EN_UPDATE) && (LOWORD(wParam) == IDC_EDIT_TEXT)) + { + BOOL bEnable = !!GetWindowTextLength(GetDlgItem(hDlg, IDC_EDIT_TEXT)); + EnableWindow(GetDlgItem(hDlg, IDOK), bEnable); + } + if((HIWORD(wParam) == EN_KILLFOCUS) && (LOWORD(wParam) == IDC_EDIT_FGCOLOR)) + { + wchar_t szColor[1024]; + GetWindowText(GetDlgItem(hDlg, IDC_EDIT_FGCOLOR), szColor, 1024); + long color = FixColor(szColor); + DrawColoredRect(hDlg, IDC_EDIT_FGCOLOR, color); + SetWindowText(GetDlgItem(hDlg, IDC_EDIT_FGCOLOR), szColor); + return (INT_PTR)TRUE; + } + if((HIWORD(wParam) == EN_KILLFOCUS) && (LOWORD(wParam) == IDC_EDIT_BGCOLOR)) + { + wchar_t szColor[1024]; + GetWindowText(GetDlgItem(hDlg, IDC_EDIT_BGCOLOR), szColor, 1024); + long color = FixColor(szColor); + DrawColoredRect(hDlg, IDC_EDIT_BGCOLOR, color); + SetWindowText(GetDlgItem(hDlg, IDC_EDIT_BGCOLOR), szColor); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} + +Image *myImage; + +INT_PTR CALLBACK ImageWnd(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + { + myImage = new Image(gpFileSession->GetImagePath(), true); + + FileUtils fu; + LayoutCalc lc(myImage->GetWidth(), myImage->GetHeight()); + + SetWindowPos(hDlg, NULL, _wtoi(fu.GetIniValue(L"outputx")), + _wtoi(fu.GetIniValue(L"outputy")), lc.w7(), lc.h7(), SWP_NOZORDER); + SetWindowPos(GetDlgItem(hDlg, IDOK), NULL, lc.x8(), lc.y8(), lc.w8(), lc.h8(), SWP_NOZORDER); + SetWindowPos(GetDlgItem(hDlg, IDCANCEL), NULL, lc.x9(), lc.y9(), lc.w9(), lc.h9(), SWP_NOZORDER); + } + return (INT_PTR)TRUE; + + case WM_PAINT: + { + if(!myImage) + return 0; + + HDC hdc; + PAINTSTRUCT ps; + + hdc = BeginPaint(hDlg, &ps); + Graphics graphics(hdc); + graphics.DrawImage(myImage, LayoutCalc::mw, LayoutCalc::mw, myImage->GetWidth(), myImage->GetHeight()); + EndPaint(hDlg, &ps); + } + return (INT_PTR)FALSE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDCANCEL) + { + FileUtils fu; + RECT rc; + GetWindowRect(hDlg, &rc); + wchar_t buf[100]; + _itow_s(rc.left, buf, 100, 10); + fu.SetIniValue(L"outputx", buf); + _itow_s(rc.top, buf, 100, 10); + fu.SetIniValue(L"outputy", buf); + + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + if (LOWORD(wParam) == IDOK) + { + OPENFILENAME ofn; // common dialog box structure + ZeroMemory(&ofn, sizeof(ofn)); + wchar_t szFile[MAX_PATH]; + szFile[0] = '\0'; + + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.hwndOwner = hDlg; + ofn.lpstrFilter = L"PNG Image\0*,png\0"; + ofn.lpstrFile= szFile; + ofn.nMaxFile = sizeof(szFile)/ sizeof(*szFile); + ofn.lpstrFileTitle = NULL; + ofn.nMaxFileTitle = 0; + ofn.lpstrInitialDir = (LPWSTR)NULL; + ofn.Flags = OFN_SHOWHELP | OFN_OVERWRITEPROMPT; + ofn.lpstrTitle = szTitle; + + if(GetSaveFileName(&ofn)) + { + CString strName = ofn.lpstrFile; + if( (-1 == strName.Find(L".png", strName.ReverseFind('.'))) + && (-1 == strName.Find(L".PNG", strName.ReverseFind('.')))) + strName += L".png"; + gpFileSession->CopyImageTo(strName); + } + + return (INT_PTR)TRUE; + } + break; + + case WM_DESTROY: + { + delete myImage; + myImage = NULL; + } + break; + } + return (INT_PTR)FALSE; +} + + + +long FixColor(wchar_t* szColor) +{ + long color = 0; + if(szColor[0] == L'#') + swscanf_s(szColor+1, L"%x", &color); + else + swscanf_s(szColor, L"%x", &color); + + color &= 0xFFFFFF; + swprintf_s(szColor, 1024, L"#%06X",color); + return color; +} + +void DrawColoredRect(HWND hWnd, long nElement, long nColor) +{ + HDC hdc = GetDC(hWnd); + + HWND hItem = GetDlgItem(hWnd, nElement); + RECT rc; + GetWindowRect(hItem, &rc); + POINT pt1; + POINT pt2; + pt1.x = rc.left; pt1.y = rc.top; + pt2.x = rc.right; pt2.y = rc.bottom; + ScreenToClient(hWnd, &pt1); + ScreenToClient(hWnd, &pt2); + rc.left = pt1.x; rc.top = pt1.y; + rc.right = pt2.x; rc.bottom = pt2.y; + + rc.left = rc.right; + rc.right = rc.right + (rc.bottom - rc.top); + HBRUSH hBrush = CreateSolidBrush( ((nColor & 0xff0000) >> 16) | (nColor & 0xff00) | ((nColor & 0xff) << 16)); + FillRect(hdc, &rc, hBrush); + + DeleteObject(hBrush); + ReleaseDC(hWnd, hdc); +} diff --git a/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.h b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.h new file mode 100644 index 0000000..4083398 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.h @@ -0,0 +1,47 @@ +#pragma once + +#include "resource.h" + +class LayoutCalc +{ +public: + LayoutCalc(int w, int h) {m_w = w; m_h = h; }; + ~LayoutCalc() {}; + + static const int bw = 90; // button width + static const int bh = 25; // button height + static const int mw = 10; // margin width + + int x1() { return mw; }; + int y1() { return bh*4; }; + int w1() { return m_w - mw - mw; }; + int h1() { return m_h - bh*4 - mw - bh - mw; }; + + int x2() { return m_w - mw - bw - mw - bw; }; + int y2() { return m_h - mw - bh; }; + int w2() { return bw; }; + int h2() { return bh; }; + + int x3() { return m_w - mw - bw; }; + int y3() { return m_h - mw - bh; }; + int w3() { return bw; }; + int h3() { return bh; }; + + + int w7() { return mw + m_w + mw + bw + mw + 2*mw; }; + int h7() { return mw + m_h + mw + mw + mw + 2*mw; }; + + int x8() { return mw + m_w + mw; }; + int y8() { return mw; }; + int w8() { return bw; }; + int h8() { return bh; }; + + int x9() { return mw + m_w + mw; }; + int y9() { return mw + bh + mw; }; + int w9() { return bw; }; + int h9() { return bh; }; + +protected: + int m_w; + int m_h; +}; diff --git a/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.ico b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.ico new file mode 100644 index 0000000000000000000000000000000000000000..3737ecdea534f48609e8b5961e822efe92d1bdfb GIT binary patch literal 8854 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 literal 0 HcmV?d00001 diff --git a/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.rc b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.rc new file mode 100644 index 0000000..d32c2fb --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.rc @@ -0,0 +1,197 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// Russian (Russia) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_QRCODEGUI ICON "qrcodegui.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_MAIN DIALOGEX 0, 0, 195, 130 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "QR Code" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + EDITTEXT IDC_EDIT_TEXT,7,64,181,44,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL + PUSHBUTTON "Generate",IDOK,77,109,50,14 + PUSHBUTTON "Close",IDCANCEL,138,109,50,14 + LTEXT "Pixel size:",IDC_STATIC_PIXEL,7,10,39,8 + EDITTEXT IDC_EDIT_PIXEL,48,7,40,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT + LTEXT "Margin size:",IDC_STATIC_MARGIN,7,25,39,8 + EDITTEXT IDC_EDIT_MARGIN,48,22,40,12,ES_AUTOHSCROLL | ES_NUMBER,WS_EX_RIGHT + LTEXT "Error level:",IDC_STATIC_ERROR,7,40,39,8 + COMBOBOX IDC_COMBO_LEVEL,48,37,40,59,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Text:",IDC_STATIC_TEXT,7,53,29,8 + LTEXT "Foreground:",IDC_STATIC_PIXEL2,106,10,39,8 + EDITTEXT IDC_EDIT_FGCOLOR,148,7,40,12,ES_AUTOHSCROLL,WS_EX_RIGHT + EDITTEXT IDC_EDIT_BGCOLOR,148,22,40,12,ES_AUTOHSCROLL,WS_EX_RIGHT + LTEXT "Background:",IDC_STATIC_PIXEL3,106,25,39,8 +END + +IDD_IMAGE DIALOGEX 0, 0, 137, 66 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "QR Code" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + PUSHBUTTON "Save As...",IDOK,80,7,50,14 + PUSHBUTTON "Close",IDCANCEL,80,26,50,14 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_MAIN, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 188 + TOPMARGIN, 7 + BOTTOMMARGIN, 123 + END + + IDD_IMAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 130 + TOPMARGIN, 7 + BOTTOMMARGIN, 59 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_APP_TITLE "qrcodegui" + IDC_QRCODEGUI "QRCODEGUI" +END + +#endif // Russian (Russia) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 3,4,4,0 + PRODUCTVERSION 3,4,4,0 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x0L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "FileDescription", "qrcodegu" + VALUE "FileVersion", "3.4.4.0" + VALUE "InternalName", "qrcodegu" + VALUE "LegalCopyright", "Copyright (C) 2011" + VALUE "OriginalFilename", "qrcodegu" + VALUE "ProductName", " qrcodegu" + VALUE "ProductVersion", "3.4.4.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcproj b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcproj new file mode 100644 index 0000000..9204753 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcproj @@ -0,0 +1,427 @@ +<?xml version="1.0" encoding="windows-1251"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="qrcodegui" + ProjectGUID="{B77F9451-3595-427C-9366-A8D82F27B33B}" + RootNamespace="qrcodegui" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug-Lib|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + UseOfATL="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="Gdiplus.lib" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release-Lib|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + UseOfATL="1" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" + RuntimeLibrary="0" + UsePrecompiledHeader="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="Gdiplus.lib" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug-Dll|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + UseOfATL="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="Gdiplus.lib" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release-Dll|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="1" + UseOfATL="1" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS" + RuntimeLibrary="2" + UsePrecompiledHeader="2" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="Gdiplus.lib" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath=".\FileUtils.cpp" + > + </File> + <File + RelativePath=".\qrcodegui.cpp" + > + </File> + <File + RelativePath=".\stdafx.cpp" + > + <FileConfiguration + Name="Debug-Lib|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Release-Lib|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug-Dll|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Release-Dll|Win32" + > + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath=".\FileUtils.h" + > + </File> + <File + RelativePath=".\qrcodegui.h" + > + </File> + <File + RelativePath=".\Resource.h" + > + </File> + <File + RelativePath=".\stdafx.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + <File + RelativePath=".\qrcodegui.ico" + > + </File> + <File + RelativePath=".\qrcodegui.rc" + > + </File> + <File + RelativePath=".\small.ico" + > + </File> + </Filter> + <File + RelativePath=".\ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcxproj b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcxproj new file mode 100644 index 0000000..6164f85 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcxproj @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-Dll|Win32"> + <Configuration>Debug-Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-Lib|Win32"> + <Configuration>Debug-Lib</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-Dll|Win32"> + <Configuration>Release-Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-Lib|Win32"> + <Configuration>Release-Lib</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{B77F9451-3595-427C-9366-A8D82F27B33B}</ProjectGuid> + <RootNamespace>qrcodegui</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <UseOfAtl>Static</UseOfAtl> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <UseOfAtl>Static</UseOfAtl> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <UseOfAtl>Static</UseOfAtl> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <UseOfAtl>Static</UseOfAtl> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>14.0.25420.1</_ProjectFileVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>Gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + <ClCompile> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>Gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>Gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + <ClCompile> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>Gdiplus.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="FileUtils.cpp" /> + <ClCompile Include="qrcodegui.cpp" /> + <ClCompile Include="stdafx.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="FileUtils.h" /> + <ClInclude Include="qrcodegui.h" /> + <ClInclude Include="Resource.h" /> + <ClInclude Include="stdafx.h" /> + </ItemGroup> + <ItemGroup> + <Image Include="qrcodegui.ico" /> + <Image Include="small.ico" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="qrcodegui.rc" /> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcxproj.filters b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcxproj.filters new file mode 100644 index 0000000..68dce91 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/qrcodegui.vcxproj.filters @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="FileUtils.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="qrcodegui.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="FileUtils.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="qrcodegui.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Image Include="qrcodegui.ico"> + <Filter>Resource Files</Filter> + </Image> + <Image Include="small.ico"> + <Filter>Resource Files</Filter> + </Image> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="qrcodegui.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/qrcodegui/resource.h b/contrib/qrencode-win32/vc8/qrcodegui/resource.h new file mode 100644 index 0000000..d08cb1d --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/resource.h @@ -0,0 +1,39 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by qrcodegui.rc +// +#define IDI_QRCODEGUI 101 +#define IDD_QRCODEGUI_DIALOG 102 +#define IDS_APP_TITLE 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDC_QRCODEGUI 109 +#define IDR_MAINFRAME 128 +#define IDD_MAIN 129 +#define IDD_IMAGE 130 +#define IDC_EDIT_TEXT 1000 +#define IDC_STATIC_TEXT 1001 +#define IDC_STATIC_PIXEL 1002 +#define IDC_STATIC_MARGIN 1003 +#define IDC_STATIC_ERROR 1004 +#define IDC_EDIT_PIXEL 1005 +#define IDC_EDIT_MARGIN 1006 +#define IDC_COMBO_LEVEL 1007 +#define IDC_STATIC_PIXEL2 1008 +#define IDC_EDIT_FGCOLOR 1009 +#define IDC_EDIT_BGCOLOR 1011 +#define IDC_STATIC_PIXEL3 1012 +#define IDC_BUTTON1 1013 +#define IDC_STATIC -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NO_MFC 1 +#define _APS_NEXT_RESOURCE_VALUE 131 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1014 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/contrib/qrencode-win32/vc8/qrcodegui/stdafx.cpp b/contrib/qrencode-win32/vc8/qrcodegui/stdafx.cpp new file mode 100644 index 0000000..c7ca2ae --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// qrcodegui.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/contrib/qrencode-win32/vc8/qrcodegui/stdafx.h b/contrib/qrencode-win32/vc8/qrcodegui/stdafx.h new file mode 100644 index 0000000..4c80057 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodegui/stdafx.h @@ -0,0 +1,45 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + +// Modify the following defines if you have to target a platform prior to the ones specified below. +// Refer to MSDN for the latest info on corresponding values for different platforms. +#ifndef WINVER // Allow use of features specific to Windows XP or later. +#define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows. +#endif + +#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. +#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. +#endif + +#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later. +#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later. +#endif + +#ifndef _WIN32_IE // Allow use of features specific to IE 6.0 or later. +#define _WIN32_IE 0x0600 // Change this to the appropriate value to target other versions of IE. +#endif + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files: +#include <windows.h> +#include <Shlobj.h> +// C RunTime Header Files +#include <stdlib.h> +#include <malloc.h> +#include <memory.h> +#include <tchar.h> + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit +#include <Commdlg.h> +#include <atlbase.h> +#include <atlstr.h> +#include <gdiplus.h> + +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") + +#include "FileUtils.h" + diff --git a/contrib/qrencode-win32/vc8/qrcodelib/config.h b/contrib/qrencode-win32/vc8/qrcodelib/config.h new file mode 100644 index 0000000..8b64f3f --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodelib/config.h @@ -0,0 +1,17 @@ + + +#define MAJOR_VERSION 3 +#define MINOR_VERSION 4 +#define MICRO_VERSION 4 +#define VERSION "3.4.4" + +#define __STATIC static + +#if defined(_WIN32) || defined(_WIN64) + #define strcasecmp _stricmp + #define strncasecmp _strnicmp + #if _MSC_VER < 1900 + #define snprintf _snprintf + #define vsnprintf _vsnprintf + #endif +#endif diff --git a/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.cpp b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.cpp new file mode 100644 index 0000000..f9ec7cf --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.cpp @@ -0,0 +1,30 @@ +// qrcodelib.cpp : Defines the entry point for the DLL application. +// + +#ifdef _MANAGED +#pragma managed(push, off) +#endif + +#include <windows.h> + + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + +#ifdef _MANAGED +#pragma managed(pop) +#endif + diff --git a/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.def b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.def new file mode 100644 index 0000000..78bee0d --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.def @@ -0,0 +1,42 @@ +LIBRARY qrcodelib +DESCRIPTION "QR Code Library" +EXPORTS + + QRinput_new @1 + QRinput_new2 @2 + QRinput_newMQR @3 + QRinput_append @4 + QRinput_appendECIheader @5 + QRinput_getVersion @6 + QRinput_setVersion @7 + QRinput_getErrorCorrectionLevel @8 + QRinput_setErrorCorrectionLevel @9 + QRinput_setVersionAndErrorCorrectionLevel @10 + QRinput_free @11 + QRinput_check @12 + QRinput_Struct_new @13 + QRinput_Struct_setParity @14 + QRinput_Struct_appendInput @15 + QRinput_Struct_free @16 + QRinput_splitQRinputToStruct @17 + QRinput_Struct_insertStructuredAppendHeaders @18 + QRinput_setFNC1First @19 + QRinput_setFNC1Second @20 + QRcode_encodeInput @21 + QRcode_encodeString @22 + QRcode_encodeString8bit @23 + QRcode_encodeStringMQR @24 + QRcode_encodeString8bitMQR @25 + QRcode_encodeData @26 + QRcode_encodeDataMQR @27 + QRcode_free @28 + QRcode_encodeInputStructured @29 + QRcode_encodeStringStructured @30 + QRcode_encodeString8bitStructured @31 + QRcode_encodeDataStructured @32 + QRcode_List_size @33 + QRcode_List_free @34 + QRcode_APIVersion @35 + QRcode_APIVersionString @36 + QRcode_clearCache @37 + diff --git a/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcproj b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcproj new file mode 100644 index 0000000..3f17ae8 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcproj @@ -0,0 +1,425 @@ +<?xml version="1.0" encoding="windows-1251"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8,00" + Name="qrcodelib" + ProjectGUID="{9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}" + RootNamespace="qrcodelib" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug-Dll|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories=".\,..\qrcode,..\qrcode\png" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;QRCODELIB_EXPORTS;HAVE_CONFIG_H" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=" libpng15d.lib" + LinkIncremental="2" + AdditionalLibraryDirectories="..\qrcode\png" + ModuleDefinitionFile="qrcodelib.def" + GenerateDebugInformation="true" + SubSystem="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release-Dll|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories=".\,..\qrcode,..\qrcode\png" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;QRCODELIB_EXPORTS;HAVE_CONFIG_H" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libpng15.lib" + LinkIncremental="1" + AdditionalLibraryDirectories="..\qrcode\png" + ModuleDefinitionFile="qrcodelib.def" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug-Lib|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories=".\,..\qrcode,..\qrcode\png" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;QRCODELIB_EXPORTS;HAVE_CONFIG_H" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release-Lib|Win32" + OutputDirectory="../.build/$(ConfigurationName)" + IntermediateDirectory="../.build/$(ProjectName)/$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="2" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories=".\,..\qrcode,..\qrcode\png" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;QRCODELIB_EXPORTS;HAVE_CONFIG_H" + RuntimeLibrary="0" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath=".\qrcodelib.cpp" + > + </File> + <File + RelativePath=".\qrcodelib.def" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath=".\config.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + <Filter + Name="libqrencode" + > + <File + RelativePath="..\..\bitstream.c" + > + </File> + <File + RelativePath="..\..\bitstream.h" + > + </File> + <File + RelativePath="..\qrcode\getopt.c" + > + </File> + <File + RelativePath="..\..\mask.c" + > + </File> + <File + RelativePath="..\..\mask.h" + > + </File> + <File + RelativePath="..\..\mmask.c" + > + </File> + <File + RelativePath="..\..\mmask.h" + > + </File> + <File + RelativePath="..\..\mqrspec.c" + > + </File> + <File + RelativePath="..\..\mqrspec.h" + > + </File> + <File + RelativePath="..\..\qrenc.c" + > + </File> + <File + RelativePath="..\..\qrencode.c" + > + </File> + <File + RelativePath="..\..\qrencode.h" + > + </File> + <File + RelativePath="..\..\qrinput.c" + > + </File> + <File + RelativePath="..\..\qrinput.h" + > + </File> + <File + RelativePath="..\..\qrspec.c" + > + </File> + <File + RelativePath="..\..\qrspec.h" + > + </File> + <File + RelativePath="..\..\rscode.c" + > + </File> + <File + RelativePath="..\..\rscode.h" + > + </File> + <File + RelativePath="..\..\split.c" + > + </File> + <File + RelativePath="..\..\split.h" + > + </File> + </Filter> + <File + RelativePath=".\ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcxproj b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcxproj new file mode 100644 index 0000000..ca475d6 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcxproj @@ -0,0 +1,185 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-Dll|Win32"> + <Configuration>Debug-Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-Lib|Win32"> + <Configuration>Debug-Lib</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-Dll|Win32"> + <Configuration>Release-Dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-Lib|Win32"> + <Configuration>Release-Lib</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}</ProjectGuid> + <RootNamespace>qrcodelib</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>14.0.25420.1</_ProjectFileVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + <OutDir>../.build/$(Configuration)\</OutDir> + <IntDir>../.build/$(ProjectName)/$(Configuration)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.\;..\qrcode;..\qrcode\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;QRCODELIB_EXPORTS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>libpng15d.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\qrcode\png;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <ModuleDefinitionFile>qrcodelib.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'"> + <ClCompile> + <AdditionalIncludeDirectories>.\;..\qrcode;..\qrcode\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;QRCODELIB_EXPORTS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>libpng15.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\qrcode\png;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <ModuleDefinitionFile>qrcodelib.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.\;..\qrcode;..\qrcode\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;QRCODELIB_EXPORTS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'"> + <ClCompile> + <AdditionalIncludeDirectories>.\;..\qrcode;..\qrcode\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;QRCODELIB_EXPORTS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <PrecompiledHeader /> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\bitstream.c" /> + <ClCompile Include="..\..\mask.c" /> + <ClCompile Include="..\..\mmask.c" /> + <ClCompile Include="..\..\mqrspec.c" /> + <ClCompile Include="..\..\qrenc.c" /> + <ClCompile Include="..\..\qrencode.c" /> + <ClCompile Include="..\..\qrinput.c" /> + <ClCompile Include="..\..\qrspec.c" /> + <ClCompile Include="..\..\rscode.c" /> + <ClCompile Include="..\..\split.c" /> + <ClCompile Include="..\qrcode\getopt.c" /> + <ClCompile Include="qrcodelib.cpp" /> + </ItemGroup> + <ItemGroup> + <None Include="qrcodelib.def" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\bitstream.h" /> + <ClInclude Include="..\..\mask.h" /> + <ClInclude Include="..\..\mmask.h" /> + <ClInclude Include="..\..\mqrspec.h" /> + <ClInclude Include="..\..\qrencode.h" /> + <ClInclude Include="..\..\qrinput.h" /> + <ClInclude Include="..\..\qrspec.h" /> + <ClInclude Include="..\..\rscode.h" /> + <ClInclude Include="..\..\split.h" /> + <ClInclude Include="config.h" /> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcxproj.filters b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcxproj.filters new file mode 100644 index 0000000..df54736 --- /dev/null +++ b/contrib/qrencode-win32/vc8/qrcodelib/qrcodelib.vcxproj.filters @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + <Filter Include="libqrencode"> + <UniqueIdentifier>{028cb178-238a-4290-ae02-af6392847b87}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="qrcodelib.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\bitstream.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\qrcode\getopt.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\mask.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\mmask.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\mqrspec.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\qrenc.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\qrencode.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\qrinput.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\qrspec.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\rscode.c"> + <Filter>libqrencode</Filter> + </ClCompile> + <ClCompile Include="..\..\split.c"> + <Filter>libqrencode</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <None Include="qrcodelib.def"> + <Filter>Source Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClInclude Include="config.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\bitstream.h"> + <Filter>libqrencode</Filter> + </ClInclude> + <ClInclude Include="..\..\mask.h"> + <Filter>libqrencode</Filter> + </ClInclude> + <ClInclude Include="..\..\mmask.h"> + <Filter>libqrencode</Filter> + </ClInclude> + <ClInclude Include="..\..\mqrspec.h"> + <Filter>libqrencode</Filter> + </ClInclude> + <ClInclude Include="..\..\qrencode.h"> + <Filter>libqrencode</Filter> + </ClInclude> + <ClInclude Include="..\..\qrinput.h"> + <Filter>libqrencode</Filter> + </ClInclude> + <ClInclude Include="..\..\qrspec.h"> + <Filter>libqrencode</Filter> + </ClInclude> + <ClInclude Include="..\..\rscode.h"> + <Filter>libqrencode</Filter> + </ClInclude> + <ClInclude Include="..\..\split.h"> + <Filter>libqrencode</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Text Include="ReadMe.txt" /> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/contrib/qrencode-win32/vc8/settings.ini b/contrib/qrencode-win32/vc8/settings.ini new file mode 100644 index 0000000..bacb1d0 --- /dev/null +++ b/contrib/qrencode-win32/vc8/settings.ini @@ -0,0 +1,10 @@ +[qrcodegui] +outputx=120 +outputy=20 +winx=20 +winy=20 +winw=400 +winh=300 +pixel=3 +margin=3 +level=L diff --git a/contrib/qrencode-win32/vc8/test.bat b/contrib/qrencode-win32/vc8/test.bat new file mode 100644 index 0000000..7d03bfe --- /dev/null +++ b/contrib/qrencode-win32/vc8/test.bat @@ -0,0 +1 @@ +qrcode.exe -o test.png -s 5 -l H http://fukuchi.org/works/qrencode/index.en.html \ No newline at end of file diff --git a/ring-client-uwp.sln b/ring-client-uwp.sln index f362c1d..856964d 100644 --- a/ring-client-uwp.sln +++ b/ring-client-uwp.sln @@ -13,7 +13,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ring-daemon", "..\ring-daem {6BD59A09-0768-40D3-A04B-10F95555689B} = {6BD59A09-0768-40D3-A04B-10F95555689B} EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "contrib", "contrib", "{96846C59-E0A1-4132-B779-065C2EAE3E51}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "contrib daemon", "contrib daemon", "{96846C59-E0A1-4132-B779-065C2EAE3E51}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pjlib", "..\ring-daemon\contrib\pjproject\pjlib\build\pjlib.vcxproj", "{DA0E03ED-53A7-4050-8A85-90541C5509F8}" ProjectSection(ProjectDependencies) = postProject @@ -163,7 +163,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbis", "..\ring-daemon EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "..\ring-daemon\contrib\ogg\MSVC\libogg.vcxproj", "{1C2315EC-E08C-4E8F-AD66-917DC9C30B98}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BUILD-CONTRIBS", "dependencies.vcxproj", "{6BD59A09-0768-40D3-A04B-10F95555689B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dependencies", "dependencies.vcxproj", "{6BD59A09-0768-40D3-A04B-10F95555689B}" ProjectSection(ProjectDependencies) = postProject {6227F51A-1498-4C4A-B213-F6FDED605125} = {6227F51A-1498-4C4A-B213-F6FDED605125} {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89} = {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89} @@ -177,14 +177,21 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BUILD-CONTRIBS", "dependenc {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A} = {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A} EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "contrib client", "contrib client", "{6EBA7EA6-20F5-40F9-96E3-32706D9ABD58}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qrcodelib", "..\..\..\qrencode-win32\qrencode-win32\vc8\qrcodelib\qrcodelib.vcxproj", "{9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 DebugDLL|ARM = DebugDLL|ARM + Debug-Dll|ARM = Debug-Dll|ARM DebugDLL|x64 = DebugDLL|x64 + Debug-Dll|x64 = Debug-Dll|x64 DebugDLL|x86 = DebugDLL|x86 + Debug-Dll|x86 = Debug-Dll|x86 DebugDLLStaticDeps|ARM = DebugDLLStaticDeps|ARM DebugDLLStaticDeps|x64 = DebugDLLStaticDeps|x64 DebugDLLStaticDeps|x86 = DebugDLLStaticDeps|x86 @@ -192,8 +199,11 @@ Global Debug-Dynamic|x64 = Debug-Dynamic|x64 Debug-Dynamic|x86 = Debug-Dynamic|x86 DebugLib|ARM = DebugLib|ARM + Debug-Lib|ARM = Debug-Lib|ARM DebugLib|x64 = DebugLib|x64 + Debug-Lib|x64 = Debug-Lib|x64 DebugLib|x86 = DebugLib|x86 + Debug-Lib|x86 = Debug-Lib|x86 Debug-Static|ARM = Debug-Static|ARM Debug-Static|x64 = Debug-Static|x64 Debug-Static|x86 = Debug-Static|x86 @@ -207,8 +217,11 @@ Global Release|x64 = Release|x64 Release|x86 = Release|x86 ReleaseDLL|ARM = ReleaseDLL|ARM + Release-Dll|ARM = Release-Dll|ARM ReleaseDLL|x64 = ReleaseDLL|x64 + Release-Dll|x64 = Release-Dll|x64 ReleaseDLL|x86 = ReleaseDLL|x86 + Release-Dll|x86 = Release-Dll|x86 ReleaseDLLStaticDeps|ARM = ReleaseDLLStaticDeps|ARM ReleaseDLLStaticDeps|x64 = ReleaseDLLStaticDeps|x64 ReleaseDLLStaticDeps|x86 = ReleaseDLLStaticDeps|x86 @@ -216,8 +229,11 @@ Global Release-Dynamic|x64 = Release-Dynamic|x64 Release-Dynamic|x86 = Release-Dynamic|x86 ReleaseLib|ARM = ReleaseLib|ARM + Release-Lib|ARM = Release-Lib|ARM ReleaseLib|x64 = ReleaseLib|x64 + Release-Lib|x64 = Release-Lib|x64 ReleaseLib|x86 = ReleaseLib|x86 + Release-Lib|x86 = Release-Lib|x86 ReleaseLTO|ARM = ReleaseLTO|ARM ReleaseLTO|x64 = ReleaseLTO|x64 ReleaseLTO|x86 = ReleaseLTO|x86 @@ -238,12 +254,21 @@ Global {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|ARM.ActiveCfg = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|ARM.Build.0 = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|ARM.Deploy.0 = Debug|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|ARM.ActiveCfg = Debug|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|ARM.Build.0 = Debug|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|ARM.Deploy.0 = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|x64.ActiveCfg = Debug|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|x64.Build.0 = Debug|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|x64.Deploy.0 = Debug|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|x64.Build.0 = Debug|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|x64.Deploy.0 = Debug|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|x86.ActiveCfg = Debug|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|x86.Build.0 = Debug|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLL|x86.Deploy.0 = Debug|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|x86.Build.0 = Debug|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Dll|x86.Deploy.0 = Debug|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLLStaticDeps|ARM.ActiveCfg = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLLStaticDeps|ARM.Build.0 = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.DebugDLLStaticDeps|ARM.Deploy.0 = Debug|ARM @@ -265,12 +290,21 @@ Global {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|ARM.ActiveCfg = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|ARM.Build.0 = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|ARM.Deploy.0 = Debug|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|ARM.ActiveCfg = Debug|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|ARM.Build.0 = Debug|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|ARM.Deploy.0 = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|x64.ActiveCfg = Debug|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|x64.Build.0 = Debug|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|x64.Deploy.0 = Debug|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|x64.Build.0 = Debug|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|x64.Deploy.0 = Debug|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|x86.ActiveCfg = Debug|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|x86.Build.0 = Debug|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.DebugLib|x86.Deploy.0 = Debug|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|x86.Build.0 = Debug|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Lib|x86.Deploy.0 = Debug|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Static|ARM.ActiveCfg = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Static|ARM.Build.0 = Debug|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.Debug-Static|ARM.Deploy.0 = Debug|ARM @@ -310,12 +344,21 @@ Global {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|ARM.ActiveCfg = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|ARM.Build.0 = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|ARM.Deploy.0 = Release|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|ARM.ActiveCfg = Release|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|ARM.Build.0 = Release|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|ARM.Deploy.0 = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|x64.ActiveCfg = Release|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|x64.Build.0 = Release|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|x64.Deploy.0 = Release|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|x64.ActiveCfg = Release|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|x64.Build.0 = Release|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|x64.Deploy.0 = Release|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|x86.Build.0 = Release|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLL|x86.Deploy.0 = Release|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|x86.ActiveCfg = Release|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|x86.Build.0 = Release|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Dll|x86.Deploy.0 = Release|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseDLLStaticDeps|ARM.Deploy.0 = Release|ARM @@ -337,12 +380,21 @@ Global {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|ARM.ActiveCfg = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|ARM.Build.0 = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|ARM.Deploy.0 = Release|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|ARM.ActiveCfg = Release|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|ARM.Build.0 = Release|ARM + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|ARM.Deploy.0 = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|x64.ActiveCfg = Release|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|x64.Build.0 = Release|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|x64.Deploy.0 = Release|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|x64.ActiveCfg = Release|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|x64.Build.0 = Release|x64 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|x64.Deploy.0 = Release|x64 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|x86.ActiveCfg = Release|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|x86.Build.0 = Release|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLib|x86.Deploy.0 = Release|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|x86.ActiveCfg = Release|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|x86.Build.0 = Release|Win32 + {90928671-346F-42E4-934F-7A7A512A2D11}.Release-Lib|x86.Deploy.0 = Release|Win32 {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLTO|ARM.ActiveCfg = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLTO|ARM.Build.0 = Release|ARM {90928671-346F-42E4-934F-7A7A512A2D11}.ReleaseLTO|ARM.Deploy.0 = Release|ARM @@ -368,10 +420,16 @@ Global {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug|x86.Build.0 = Debug|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLL|ARM.ActiveCfg = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLL|ARM.Build.0 = ReleaseLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Dll|ARM.Build.0 = Release|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLL|x64.ActiveCfg = DebugLib|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLL|x64.Build.0 = DebugLib|x64 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Dll|x64.ActiveCfg = DebugLib|x64 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Dll|x64.Build.0 = DebugLib|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLL|x86.ActiveCfg = DebugLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLL|x86.Build.0 = DebugLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Dll|x86.ActiveCfg = DebugLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Dll|x86.Build.0 = DebugLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLLStaticDeps|ARM.ActiveCfg = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLLStaticDeps|ARM.Build.0 = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugDLLStaticDeps|x64.ActiveCfg = DebugLib|x64 @@ -385,10 +443,16 @@ Global {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Dynamic|x86.ActiveCfg = DebugLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Dynamic|x86.Build.0 = DebugLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugLib|ARM.ActiveCfg = DebugLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Lib|ARM.Build.0 = Release|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugLib|x64.ActiveCfg = DebugLib|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugLib|x64.Build.0 = DebugLib|x64 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Lib|x64.ActiveCfg = DebugLib|x64 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Lib|x64.Build.0 = DebugLib|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugLib|x86.ActiveCfg = DebugLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.DebugLib|x86.Build.0 = DebugLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Lib|x86.ActiveCfg = DebugLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Lib|x86.Build.0 = DebugLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Static|ARM.ActiveCfg = ReleaseLib|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Static|ARM.Build.0 = ReleaseLib|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Debug-Static|x64.ActiveCfg = DebugLib|x64 @@ -414,10 +478,16 @@ Global {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release|x86.Build.0 = Release|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLL|ARM.ActiveCfg = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLL|ARM.Build.0 = ReleaseLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Dll|ARM.Build.0 = Release|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLL|x64.ActiveCfg = Release|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLL|x64.Build.0 = Release|x64 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Dll|x64.ActiveCfg = Release|x64 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Dll|x64.Build.0 = Release|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLL|x86.ActiveCfg = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLL|x86.Build.0 = ReleaseLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Dll|x86.ActiveCfg = Release|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Dll|x86.Build.0 = Release|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLLStaticDeps|ARM.ActiveCfg = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLLStaticDeps|ARM.Build.0 = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -431,10 +501,16 @@ Global {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Dynamic|x86.ActiveCfg = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Dynamic|x86.Build.0 = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseLib|ARM.ActiveCfg = ReleaseLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Lib|ARM.Build.0 = Release|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseLib|x64.ActiveCfg = ReleaseLib|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseLib|x64.Build.0 = ReleaseLib|x64 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Lib|x64.ActiveCfg = Release|x64 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Lib|x64.Build.0 = Release|x64 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseLib|x86.ActiveCfg = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseLib|x86.Build.0 = ReleaseLib|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Lib|x86.ActiveCfg = Release|Win32 + {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.Release-Lib|x86.Build.0 = Release|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseLTO|ARM.ActiveCfg = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseLTO|ARM.Build.0 = ReleaseLib|Win32 {79F8DE42-595D-49D9-A66F-55244FD9DCC3}.ReleaseLTO|x64.ActiveCfg = ReleaseLib|x64 @@ -454,10 +530,16 @@ Global {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug|x86.Build.0 = Debug|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLL|ARM.ActiveCfg = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLL|ARM.Build.0 = Release-Static|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLL|x64.ActiveCfg = Debug-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLL|x64.Build.0 = Debug-Static|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLL|x86.ActiveCfg = Debug-Static|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLL|x86.Build.0 = Debug-Static|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugDLLStaticDeps|x64.ActiveCfg = Debug-Static|x64 @@ -471,10 +553,16 @@ Global {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugLib|x64.ActiveCfg = Debug|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugLib|x64.Build.0 = Debug|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Lib|x64.ActiveCfg = Debug-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Lib|x64.Build.0 = Debug-Dynamic|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugLib|x86.ActiveCfg = Debug|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.DebugLib|x86.Build.0 = Debug|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Lib|x86.ActiveCfg = Debug-Dynamic|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Lib|x86.Build.0 = Debug-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -499,10 +587,16 @@ Global {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release|x86.Build.0 = Release|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLL|ARM.ActiveCfg = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLL|ARM.Build.0 = Release-Static|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLL|x86.ActiveCfg = Release-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLL|x86.Build.0 = Release-Dynamic|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -516,10 +610,16 @@ Global {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|x64.ActiveCfg = Release|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|x64.Build.0 = Release|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {DA0E03ED-53A7-4050-8A85-90541C5509F8}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLTO|ARM.ActiveCfg = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLTO|ARM.Build.0 = Release-Static|x64 {DA0E03ED-53A7-4050-8A85-90541C5509F8}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -538,10 +638,16 @@ Global {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug|x86.Build.0 = Debug|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLL|x64.ActiveCfg = Debug|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLL|x64.Build.0 = Debug|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLL|x86.ActiveCfg = Debug|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLL|x86.Build.0 = Debug|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -555,10 +661,16 @@ Global {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugLib|x64.ActiveCfg = Debug|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugLib|x64.Build.0 = Debug|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugLib|x86.ActiveCfg = Debug|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.DebugLib|x86.Build.0 = Debug|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -583,10 +695,16 @@ Global {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release|x86.Build.0 = Release|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -600,10 +718,16 @@ Global {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|x64.ActiveCfg = Release|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|x64.Build.0 = Release|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {FE07F272-AE7F-4549-9E9F-EF9B80CB1693}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -622,10 +746,16 @@ Global {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug|x86.Build.0 = Debug|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLL|x64.ActiveCfg = Debug|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLL|x64.Build.0 = Debug|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLL|x86.ActiveCfg = Debug|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLL|x86.Build.0 = Debug|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -639,10 +769,16 @@ Global {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugLib|x64.ActiveCfg = Debug|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugLib|x64.Build.0 = Debug|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugLib|x86.ActiveCfg = Debug|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.DebugLib|x86.Build.0 = Debug|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -667,10 +803,16 @@ Global {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release|x86.Build.0 = Release|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -684,10 +826,16 @@ Global {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|x64.ActiveCfg = Release|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|x64.Build.0 = Release|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {7FDE3880-A4AB-49E3-B439-EBEF0A0C7A65}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -706,10 +854,16 @@ Global {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug|x86.Build.0 = Debug|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLL|x64.ActiveCfg = Debug|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLL|x64.Build.0 = Debug|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLL|x86.ActiveCfg = Debug|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLL|x86.Build.0 = Debug|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -723,10 +877,16 @@ Global {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugLib|x64.ActiveCfg = Debug|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugLib|x64.Build.0 = Debug|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugLib|x86.ActiveCfg = Debug|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.DebugLib|x86.Build.0 = Debug|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -751,10 +911,16 @@ Global {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release|x86.Build.0 = Release|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -768,10 +934,16 @@ Global {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|x64.ActiveCfg = Release|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|x64.Build.0 = Release|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {855DC8C0-D3E9-4A2E-AE47-116605A7BC9B}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -790,10 +962,16 @@ Global {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug|x86.Build.0 = Debug|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLL|ARM.ActiveCfg = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLL|ARM.Build.0 = Release-Static|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLL|x64.ActiveCfg = Debug-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLL|x64.Build.0 = Debug-Static|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLL|x86.ActiveCfg = Debug-Static|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLL|x86.Build.0 = Debug-Static|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugDLLStaticDeps|x64.ActiveCfg = Debug-Static|x64 @@ -807,10 +985,16 @@ Global {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugLib|x64.ActiveCfg = Debug|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugLib|x64.Build.0 = Debug|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Lib|x64.ActiveCfg = Debug-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Lib|x64.Build.0 = Debug-Dynamic|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugLib|x86.ActiveCfg = Debug|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.DebugLib|x86.Build.0 = Debug|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Lib|x86.ActiveCfg = Debug-Dynamic|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Lib|x86.Build.0 = Debug-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -835,10 +1019,16 @@ Global {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release|x86.Build.0 = Release|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLL|ARM.ActiveCfg = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLL|ARM.Build.0 = Release-Static|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLL|x86.ActiveCfg = Release-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLL|x86.Build.0 = Release-Dynamic|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -852,10 +1042,16 @@ Global {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|x64.ActiveCfg = Release|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|x64.Build.0 = Release|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {2BB84911-C1B4-4747-B93D-36AA82CC5031}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLTO|ARM.ActiveCfg = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLTO|ARM.Build.0 = Release-Static|x64 {2BB84911-C1B4-4747-B93D-36AA82CC5031}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -874,10 +1070,16 @@ Global {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug|x86.Build.0 = Debug|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLL|x64.ActiveCfg = Debug|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLL|x64.Build.0 = Debug|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLL|x86.ActiveCfg = Debug|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLL|x86.Build.0 = Debug|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -891,10 +1093,16 @@ Global {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugLib|x64.ActiveCfg = Debug|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugLib|x64.Build.0 = Debug|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugLib|x86.ActiveCfg = Debug|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.DebugLib|x86.Build.0 = Debug|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -919,10 +1127,16 @@ Global {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release|x86.Build.0 = Release|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -936,10 +1150,16 @@ Global {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|x64.ActiveCfg = Release|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|x64.Build.0 = Release|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {4B5945CD-0CB3-49AA-A7FF-7612D93F82C0}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -958,10 +1178,16 @@ Global {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug|x86.Build.0 = Debug|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLL|x64.ActiveCfg = Debug|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLL|x64.Build.0 = Debug|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLL|x86.ActiveCfg = Debug|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLL|x86.Build.0 = Debug|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -975,10 +1201,16 @@ Global {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugLib|x64.ActiveCfg = Debug|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugLib|x64.Build.0 = Debug|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugLib|x86.ActiveCfg = Debug|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.DebugLib|x86.Build.0 = Debug|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1003,10 +1235,16 @@ Global {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release|x86.Build.0 = Release|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1020,10 +1258,16 @@ Global {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|x64.ActiveCfg = Release|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|x64.Build.0 = Release|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {B8719FD5-E8A6-4A36-943C-891D07F5DD21}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1042,10 +1286,16 @@ Global {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug|x86.Build.0 = Debug|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLL|x64.ActiveCfg = Debug|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLL|x64.Build.0 = Debug|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLL|x86.ActiveCfg = Debug|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLL|x86.Build.0 = Debug|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1059,10 +1309,16 @@ Global {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugLib|x64.ActiveCfg = Debug|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugLib|x64.Build.0 = Debug|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugLib|x86.ActiveCfg = Debug|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.DebugLib|x86.Build.0 = Debug|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1087,10 +1343,16 @@ Global {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release|x86.Build.0 = Release|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1104,10 +1366,16 @@ Global {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|x64.ActiveCfg = Release|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|x64.Build.0 = Release|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {9CA0FDFB-2172-41FC-B7F1-5CE915EDCB37}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1126,10 +1394,16 @@ Global {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug|x86.Build.0 = Debug|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLL|x64.ActiveCfg = Debug|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLL|x64.Build.0 = Debug|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLL|x86.ActiveCfg = Debug|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLL|x86.Build.0 = Debug|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1143,10 +1417,16 @@ Global {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugLib|x64.ActiveCfg = Debug|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugLib|x64.Build.0 = Debug|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugLib|x86.ActiveCfg = Debug|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.DebugLib|x86.Build.0 = Debug|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1171,10 +1451,16 @@ Global {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release|x86.Build.0 = Release|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1188,10 +1474,16 @@ Global {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|x64.ActiveCfg = Release|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|x64.Build.0 = Release|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {A5D9AA24-08ED-48B9-BD65-F0A25E96BFC4}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1210,10 +1502,16 @@ Global {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug|x86.Build.0 = Debug|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLL|x64.ActiveCfg = Debug|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLL|x64.Build.0 = Debug|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLL|x86.ActiveCfg = Debug|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLL|x86.Build.0 = Debug|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1227,10 +1525,16 @@ Global {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugLib|x64.ActiveCfg = Debug|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugLib|x64.Build.0 = Debug|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugLib|x86.ActiveCfg = Debug|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.DebugLib|x86.Build.0 = Debug|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1255,10 +1559,16 @@ Global {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release|x86.Build.0 = Release|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1272,10 +1582,16 @@ Global {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLib|x64.ActiveCfg = Release|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLib|x64.Build.0 = Release|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {E53AA5FF-B737-40AA-BD13-387EFA99023D}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {E53AA5FF-B737-40AA-BD13-387EFA99023D}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1294,10 +1610,16 @@ Global {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug|x86.Build.0 = Debug|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLL|x64.ActiveCfg = Debug|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLL|x64.Build.0 = Debug|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLL|x86.ActiveCfg = Debug|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLL|x86.Build.0 = Debug|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1311,10 +1633,16 @@ Global {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugLib|x64.ActiveCfg = Debug|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugLib|x64.Build.0 = Debug|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugLib|x86.ActiveCfg = Debug|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.DebugLib|x86.Build.0 = Debug|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1339,10 +1667,16 @@ Global {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release|x86.Build.0 = Release|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1356,10 +1690,16 @@ Global {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLib|x64.ActiveCfg = Release|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLib|x64.Build.0 = Release|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {B5FE16F8-3EDB-4110-BD80-B4238CC01E8D}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1378,10 +1718,16 @@ Global {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug|x86.Build.0 = Debug|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLL|x64.ActiveCfg = Debug|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLL|x64.Build.0 = Debug|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLL|x86.ActiveCfg = Debug|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLL|x86.Build.0 = Debug|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1395,10 +1741,16 @@ Global {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugLib|x64.ActiveCfg = Debug|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugLib|x64.Build.0 = Debug|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugLib|x86.ActiveCfg = Debug|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.DebugLib|x86.Build.0 = Debug|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1423,10 +1775,16 @@ Global {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release|x86.Build.0 = Release|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1440,10 +1798,16 @@ Global {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLib|x64.ActiveCfg = Release|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLib|x64.Build.0 = Release|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {6794B975-4E84-4F49-B2DC-C31F2224E03E}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {6794B975-4E84-4F49-B2DC-C31F2224E03E}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1462,10 +1826,16 @@ Global {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug|x86.Build.0 = Debug|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLL|ARM.ActiveCfg = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLL|ARM.Build.0 = Release-Static|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLL|x64.ActiveCfg = Debug-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLL|x64.Build.0 = Debug-Static|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLL|x86.ActiveCfg = Debug-Static|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLL|x86.Build.0 = Debug-Static|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugDLLStaticDeps|x64.ActiveCfg = Debug-Static|x64 @@ -1479,10 +1849,16 @@ Global {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugLib|x64.ActiveCfg = Debug|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugLib|x64.Build.0 = Debug|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Lib|x64.ActiveCfg = Debug-Dynamic|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Lib|x64.Build.0 = Debug-Dynamic|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugLib|x86.ActiveCfg = Debug|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.DebugLib|x86.Build.0 = Debug|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Lib|x86.ActiveCfg = Debug-Dynamic|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Lib|x86.Build.0 = Debug-Dynamic|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1507,10 +1883,16 @@ Global {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release|x86.Build.0 = Release|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLL|ARM.ActiveCfg = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLL|ARM.Build.0 = Release-Static|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLL|x86.ActiveCfg = Release-Dynamic|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLL|x86.Build.0 = Release-Dynamic|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1524,10 +1906,16 @@ Global {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLib|x64.ActiveCfg = Release|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLib|x64.Build.0 = Release|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLTO|ARM.ActiveCfg = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLTO|ARM.Build.0 = Release-Static|x64 {4B059DBA-CD9C-4D0F-BE8C-FFB4EFD498E9}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1546,10 +1934,16 @@ Global {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug|x86.Build.0 = Debug|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLL|x64.ActiveCfg = Debug|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLL|x64.Build.0 = Debug|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLL|x86.ActiveCfg = Debug|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLL|x86.Build.0 = Debug|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1563,10 +1957,16 @@ Global {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugLib|x64.ActiveCfg = Debug|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugLib|x64.Build.0 = Debug|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugLib|x86.ActiveCfg = Debug|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.DebugLib|x86.Build.0 = Debug|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1591,10 +1991,16 @@ Global {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release|x86.Build.0 = Release|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1608,10 +2014,16 @@ Global {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLib|x64.ActiveCfg = Release|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLib|x64.Build.0 = Release|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {4BF51C21-5A30-423B-82FE-1ED410E5769D}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {4BF51C21-5A30-423B-82FE-1ED410E5769D}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1630,10 +2042,16 @@ Global {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug|x86.Build.0 = Debug|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLL|x64.ActiveCfg = Debug|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLL|x64.Build.0 = Debug|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLL|x86.ActiveCfg = Debug|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLL|x86.Build.0 = Debug|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1647,10 +2065,16 @@ Global {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugLib|x64.ActiveCfg = Debug|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugLib|x64.Build.0 = Debug|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugLib|x86.ActiveCfg = Debug|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.DebugLib|x86.Build.0 = Debug|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1675,10 +2099,16 @@ Global {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release|x86.Build.0 = Release|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1692,10 +2122,16 @@ Global {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLib|x64.ActiveCfg = Release|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLib|x64.Build.0 = Release|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {F0DBAA03-1BA3-4E3B-A2CA-727E3D3AB858}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1714,10 +2150,16 @@ Global {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug|x86.Build.0 = Debug|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLL|x64.ActiveCfg = Debug|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLL|x64.Build.0 = Debug|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLL|x86.ActiveCfg = Debug|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLL|x86.Build.0 = Debug|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1731,10 +2173,16 @@ Global {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugLib|x64.ActiveCfg = Debug|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugLib|x64.Build.0 = Debug|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugLib|x86.ActiveCfg = Debug|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.DebugLib|x86.Build.0 = Debug|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1759,10 +2207,16 @@ Global {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release|x86.Build.0 = Release|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1776,10 +2230,16 @@ Global {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLib|x64.ActiveCfg = Release|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLib|x64.Build.0 = Release|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {4281CA5E-1D48-45D4-A991-2718A454B4BA}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {4281CA5E-1D48-45D4-A991-2718A454B4BA}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1798,10 +2258,16 @@ Global {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug|x86.Build.0 = Debug|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLL|x64.ActiveCfg = Debug|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLL|x64.Build.0 = Debug|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLL|x86.ActiveCfg = Debug|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLL|x86.Build.0 = Debug|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1815,10 +2281,16 @@ Global {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugLib|x64.ActiveCfg = Debug|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugLib|x64.Build.0 = Debug|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugLib|x86.ActiveCfg = Debug|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.DebugLib|x86.Build.0 = Debug|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1843,10 +2315,16 @@ Global {2A3F241E-682C-47E1-9543-DC28708B406A}.Release|x86.Build.0 = Release|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1860,10 +2338,16 @@ Global {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLib|x64.ActiveCfg = Release|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLib|x64.Build.0 = Release|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {2A3F241E-682C-47E1-9543-DC28708B406A}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {2A3F241E-682C-47E1-9543-DC28708B406A}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1882,10 +2366,16 @@ Global {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug|x86.Build.0 = Debug|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLL|x64.ActiveCfg = Debug|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLL|x64.Build.0 = Debug|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLL|x86.ActiveCfg = Debug|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLL|x86.Build.0 = Debug|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1899,10 +2389,16 @@ Global {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugLib|x64.ActiveCfg = Debug|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugLib|x64.Build.0 = Debug|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugLib|x86.ActiveCfg = Debug|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.DebugLib|x86.Build.0 = Debug|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -1927,10 +2423,16 @@ Global {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release|x86.Build.0 = Release|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -1944,10 +2446,16 @@ Global {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLib|x64.ActiveCfg = Release|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLib|x64.Build.0 = Release|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {23D7679C-764C-4E02-8B29-BB882CEEEFE2}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -1966,10 +2474,16 @@ Global {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug|x86.Build.0 = Debug|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLL|x64.ActiveCfg = Debug|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLL|x64.Build.0 = Debug|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLL|x86.ActiveCfg = Debug|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLL|x86.Build.0 = Debug|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -1983,10 +2497,16 @@ Global {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugLib|x64.ActiveCfg = Debug|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugLib|x64.Build.0 = Debug|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugLib|x86.ActiveCfg = Debug|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.DebugLib|x86.Build.0 = Debug|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -2011,10 +2531,16 @@ Global {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release|x86.Build.0 = Release|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -2028,10 +2554,16 @@ Global {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLib|x64.ActiveCfg = Release|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLib|x64.Build.0 = Release|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {A1989FF3-9894-40F4-B5A6-6EA364476E45}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {A1989FF3-9894-40F4-B5A6-6EA364476E45}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -2050,10 +2582,16 @@ Global {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug|x86.Build.0 = Debug|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLL|ARM.ActiveCfg = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLL|ARM.Build.0 = Release-Static|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLL|x64.ActiveCfg = Debug-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLL|x64.Build.0 = Debug-Static|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLL|x86.ActiveCfg = Debug-Static|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLL|x86.Build.0 = Debug-Static|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugDLLStaticDeps|x64.ActiveCfg = Debug-Static|x64 @@ -2067,10 +2605,16 @@ Global {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugLib|x64.ActiveCfg = Debug|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugLib|x64.Build.0 = Debug|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Lib|x64.ActiveCfg = Debug-Dynamic|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Lib|x64.Build.0 = Debug-Dynamic|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugLib|x86.ActiveCfg = Debug|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.DebugLib|x86.Build.0 = Debug|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Lib|x86.ActiveCfg = Debug-Dynamic|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Lib|x86.Build.0 = Debug-Dynamic|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -2095,10 +2639,16 @@ Global {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release|x86.Build.0 = Release|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLL|ARM.ActiveCfg = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLL|ARM.Build.0 = Release-Static|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLL|x86.ActiveCfg = Release-Dynamic|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLL|x86.Build.0 = Release-Dynamic|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -2112,10 +2662,16 @@ Global {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLib|x64.ActiveCfg = Release|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLib|x64.Build.0 = Release|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLTO|ARM.ActiveCfg = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLTO|ARM.Build.0 = Release-Static|x64 {E8A3F6FA-AE1C-4C8E-A0B6-9C8480324EAA}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -2134,10 +2690,16 @@ Global {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug|x86.Build.0 = Debug|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLL|ARM.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLL|ARM.Build.0 = Release-Static|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Dll|ARM.Build.0 = Release-Dynamic|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLL|x64.ActiveCfg = Debug|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLL|x64.Build.0 = Debug|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Dll|x64.ActiveCfg = Debug-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Dll|x64.Build.0 = Debug-Dynamic|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLL|x86.ActiveCfg = Debug|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLL|x86.Build.0 = Debug|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Dll|x86.ActiveCfg = Debug-Dynamic|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Dll|x86.Build.0 = Debug-Dynamic|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -2151,10 +2713,16 @@ Global {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Dynamic|x86.Build.0 = Debug-Dynamic|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugLib|ARM.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugLib|ARM.Build.0 = Release-Static|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Lib|ARM.Build.0 = Release-Dynamic|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugLib|x64.ActiveCfg = Debug|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugLib|x64.Build.0 = Debug|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Lib|x64.ActiveCfg = Debug-Static|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Lib|x64.Build.0 = Debug-Static|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugLib|x86.ActiveCfg = Debug|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.DebugLib|x86.Build.0 = Debug|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Lib|x86.ActiveCfg = Debug-Static|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Lib|x86.Build.0 = Debug-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Static|ARM.ActiveCfg = Debug-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Static|x64.ActiveCfg = Debug-Static|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.Debug-Static|x64.Build.0 = Debug-Static|x64 @@ -2179,10 +2747,16 @@ Global {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release|x86.Build.0 = Release|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLL|ARM.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLL|ARM.Build.0 = Release-Static|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Dll|ARM.ActiveCfg = Release-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Dll|ARM.Build.0 = Release-Dynamic|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLL|x64.ActiveCfg = Release-Static|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLL|x64.Build.0 = Release-Static|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Dll|x64.ActiveCfg = Release-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Dll|x64.Build.0 = Release-Dynamic|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLL|x86.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLL|x86.Build.0 = Release-Static|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Dll|x86.ActiveCfg = Release-Dynamic|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Dll|x86.Build.0 = Release-Dynamic|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLLStaticDeps|ARM.Build.0 = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release-Static|x64 @@ -2196,10 +2770,16 @@ Global {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Dynamic|x86.Build.0 = Release-Dynamic|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|ARM.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|ARM.Build.0 = Release-Static|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Lib|ARM.ActiveCfg = Release-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Lib|ARM.Build.0 = Release-Dynamic|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|x64.ActiveCfg = Release|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|x64.Build.0 = Release|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Lib|x64.ActiveCfg = Release-Dynamic|x64 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Lib|x64.Build.0 = Release-Dynamic|x64 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|x86.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLib|x86.Build.0 = Release-Static|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Lib|x86.ActiveCfg = Release-Dynamic|Win32 + {B82CDD25-6903-430E-BD38-D8129A2015C1}.Release-Lib|x86.Build.0 = Release-Dynamic|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLTO|ARM.ActiveCfg = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLTO|ARM.Build.0 = Release-Static|Win32 {B82CDD25-6903-430E-BD38-D8129A2015C1}.ReleaseLTO|x64.ActiveCfg = Release-Static|x64 @@ -2218,10 +2798,16 @@ Global {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x86.Build.0 = Debug|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLL|ARM.ActiveCfg = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLL|ARM.Build.0 = DebugLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Dll|ARM.ActiveCfg = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Dll|ARM.Build.0 = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLL|x64.ActiveCfg = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLL|x64.Build.0 = DebugLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Dll|x64.ActiveCfg = DebugLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Dll|x64.Build.0 = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLL|x86.ActiveCfg = DebugLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLL|x86.Build.0 = DebugLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Dll|x86.ActiveCfg = DebugLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Dll|x86.Build.0 = DebugLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLLStaticDeps|ARM.Build.0 = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugDLLStaticDeps|x64.ActiveCfg = DebugLib|x64 @@ -2235,10 +2821,16 @@ Global {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Dynamic|x86.ActiveCfg = DebugLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Dynamic|x86.Build.0 = DebugLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugLib|ARM.ActiveCfg = DebugLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Lib|ARM.ActiveCfg = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Lib|ARM.Build.0 = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugLib|x64.ActiveCfg = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugLib|x64.Build.0 = DebugLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Lib|x64.ActiveCfg = DebugLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Lib|x64.Build.0 = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugLib|x86.ActiveCfg = DebugLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.DebugLib|x86.Build.0 = DebugLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Lib|x86.ActiveCfg = DebugLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Lib|x86.Build.0 = DebugLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Static|ARM.ActiveCfg = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Static|ARM.Build.0 = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug-Static|x64.ActiveCfg = DebugLib|x64 @@ -2264,10 +2856,16 @@ Global {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x86.Build.0 = Release|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLL|ARM.ActiveCfg = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLL|ARM.Build.0 = DebugLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Dll|ARM.ActiveCfg = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Dll|ARM.Build.0 = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLL|x64.ActiveCfg = ReleaseLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLL|x64.Build.0 = ReleaseLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Dll|x64.ActiveCfg = ReleaseLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Dll|x64.Build.0 = ReleaseLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLL|x86.ActiveCfg = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLL|x86.Build.0 = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Dll|x86.ActiveCfg = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Dll|x86.Build.0 = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseLib|x64 @@ -2281,10 +2879,16 @@ Global {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Dynamic|x86.ActiveCfg = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Dynamic|x86.Build.0 = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseLib|ARM.ActiveCfg = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Lib|ARM.ActiveCfg = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Lib|ARM.Build.0 = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseLib|x64.ActiveCfg = ReleaseLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseLib|x64.Build.0 = ReleaseLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Lib|x64.ActiveCfg = ReleaseLib|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Lib|x64.Build.0 = ReleaseLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseLib|x86.ActiveCfg = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseLib|x86.Build.0 = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Lib|x86.ActiveCfg = ReleaseLib|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release-Lib|x86.Build.0 = ReleaseLib|Win32 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseLTO|ARM.ActiveCfg = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseLTO|ARM.Build.0 = DebugLib|x64 {0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseLTO|x64.ActiveCfg = ReleaseLib|x64 @@ -2303,10 +2907,16 @@ Global {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug|x86.ActiveCfg = Debug|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug|x86.Build.0 = Debug|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Dll|ARM.ActiveCfg = ReleaseDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Dll|ARM.Build.0 = ReleaseDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Dll|x64.ActiveCfg = DebugDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Dll|x64.Build.0 = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Dll|x86.ActiveCfg = DebugDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Dll|x86.Build.0 = DebugDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLL|x64 @@ -2321,10 +2931,16 @@ Global {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Lib|ARM.ActiveCfg = ReleaseDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Lib|ARM.Build.0 = ReleaseDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugLib|x64.Build.0 = DebugDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Lib|x64.ActiveCfg = DebugDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Lib|x64.Build.0 = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Lib|x86.ActiveCfg = DebugDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Lib|x86.Build.0 = DebugDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -2349,10 +2965,16 @@ Global {6227F51A-1498-4C4A-B213-F6FDED605125}.Release|x86.ActiveCfg = Release|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.Release|x86.Build.0 = Release|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Dll|ARM.ActiveCfg = ReleaseDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Dll|ARM.Build.0 = ReleaseDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Dll|x64.ActiveCfg = ReleaseDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Dll|x64.Build.0 = ReleaseDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Dll|x86.ActiveCfg = ReleaseDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Dll|x86.Build.0 = ReleaseDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLL|x64 @@ -2367,10 +2989,16 @@ Global {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Dynamic|x86.Build.0 = ReleaseDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Lib|ARM.ActiveCfg = ReleaseDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Lib|ARM.Build.0 = ReleaseDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLib|x64.ActiveCfg = Release|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLib|x64.Build.0 = Release|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Lib|x64.ActiveCfg = ReleaseDLL|x64 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Lib|x64.Build.0 = ReleaseDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLib|x86.ActiveCfg = ReleaseDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLib|x86.Build.0 = ReleaseDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Lib|x86.ActiveCfg = ReleaseDLL|Win32 + {6227F51A-1498-4C4A-B213-F6FDED605125}.Release-Lib|x86.Build.0 = ReleaseDLL|Win32 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLTO|ARM.ActiveCfg = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLTO|ARM.Build.0 = DebugDLL|x64 {6227F51A-1498-4C4A-B213-F6FDED605125}.ReleaseLTO|x64.ActiveCfg = ReleaseDLL|x64 @@ -2389,10 +3017,16 @@ Global {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug|x86.ActiveCfg = Debug|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug|x86.Build.0 = Debug|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Dll|ARM.ActiveCfg = ReleaseDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Dll|ARM.Build.0 = ReleaseDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Dll|x64.ActiveCfg = DebugDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Dll|x64.Build.0 = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Dll|x86.ActiveCfg = DebugDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Dll|x86.Build.0 = DebugDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLL|x64 @@ -2407,10 +3041,16 @@ Global {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Lib|ARM.ActiveCfg = ReleaseDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Lib|ARM.Build.0 = ReleaseDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugLib|x64.Build.0 = DebugDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Lib|x64.ActiveCfg = DebugDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Lib|x64.Build.0 = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Lib|x86.ActiveCfg = DebugDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Lib|x86.Build.0 = DebugDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -2435,10 +3075,16 @@ Global {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release|x86.ActiveCfg = Release|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release|x86.Build.0 = Release|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Dll|ARM.ActiveCfg = ReleaseDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Dll|ARM.Build.0 = ReleaseDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Dll|x64.ActiveCfg = ReleaseDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Dll|x64.Build.0 = ReleaseDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Dll|x86.ActiveCfg = ReleaseDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Dll|x86.Build.0 = ReleaseDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLL|x64 @@ -2453,10 +3099,16 @@ Global {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Dynamic|x86.Build.0 = ReleaseDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Lib|ARM.ActiveCfg = ReleaseDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Lib|ARM.Build.0 = ReleaseDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLib|x64.ActiveCfg = Release|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLib|x64.Build.0 = Release|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Lib|x64.ActiveCfg = ReleaseDLL|x64 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Lib|x64.Build.0 = ReleaseDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLib|x86.ActiveCfg = ReleaseDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLib|x86.Build.0 = ReleaseDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Lib|x86.ActiveCfg = ReleaseDLL|Win32 + {9C2C266D-35A3-465F-A297-0E21D54E5C89}.Release-Lib|x86.Build.0 = ReleaseDLL|Win32 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLTO|ARM.ActiveCfg = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLTO|ARM.Build.0 = DebugDLL|x64 {9C2C266D-35A3-465F-A297-0E21D54E5C89}.ReleaseLTO|x64.ActiveCfg = ReleaseDLL|x64 @@ -2475,10 +3127,16 @@ Global {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug|x86.ActiveCfg = Debug|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug|x86.Build.0 = Debug|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Dll|ARM.ActiveCfg = ReleaseDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Dll|ARM.Build.0 = ReleaseDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Dll|x64.ActiveCfg = DebugDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Dll|x64.Build.0 = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Dll|x86.ActiveCfg = DebugDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Dll|x86.Build.0 = DebugDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLL|x64 @@ -2493,10 +3151,16 @@ Global {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Lib|ARM.ActiveCfg = ReleaseDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Lib|ARM.Build.0 = ReleaseDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugLib|x64.Build.0 = DebugDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Lib|x64.ActiveCfg = DebugDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Lib|x64.Build.0 = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Lib|x86.ActiveCfg = DebugDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Lib|x86.Build.0 = DebugDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -2521,10 +3185,16 @@ Global {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release|x86.ActiveCfg = Release|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release|x86.Build.0 = Release|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Dll|ARM.ActiveCfg = ReleaseDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Dll|ARM.Build.0 = ReleaseDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Dll|x64.ActiveCfg = ReleaseDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Dll|x64.Build.0 = ReleaseDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Dll|x86.ActiveCfg = ReleaseDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Dll|x86.Build.0 = ReleaseDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLL|x64 @@ -2539,10 +3209,16 @@ Global {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Dynamic|x86.Build.0 = ReleaseDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Lib|ARM.ActiveCfg = ReleaseDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Lib|ARM.Build.0 = ReleaseDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLib|x64.ActiveCfg = Release|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLib|x64.Build.0 = Release|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Lib|x64.ActiveCfg = ReleaseDLL|x64 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Lib|x64.Build.0 = ReleaseDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLib|x86.ActiveCfg = ReleaseDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLib|x86.Build.0 = ReleaseDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Lib|x86.ActiveCfg = ReleaseDLL|Win32 + {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.Release-Lib|x86.Build.0 = ReleaseDLL|Win32 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLTO|ARM.ActiveCfg = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLTO|ARM.Build.0 = DebugDLL|x64 {1D3EEF7A-D248-48C0-B6B5-ECA229FE4B3D}.ReleaseLTO|x64.ActiveCfg = ReleaseDLL|x64 @@ -2562,10 +3238,16 @@ Global {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug|x86.Build.0 = Debug|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLL|ARM.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLL|ARM.Build.0 = Release|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Dll|ARM.Build.0 = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLL|x64.ActiveCfg = Debug|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLL|x64.Build.0 = Debug|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Dll|x64.Build.0 = Debug|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLL|x86.ActiveCfg = Debug|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLL|x86.Build.0 = Debug|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Dll|x86.Build.0 = Debug|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -2580,10 +3262,16 @@ Global {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugLib|ARM.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugLib|ARM.Build.0 = Release|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Lib|ARM.Build.0 = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugLib|x64.ActiveCfg = Debug|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugLib|x64.Build.0 = Debug|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Lib|x64.Build.0 = Debug|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugLib|x86.ActiveCfg = Debug|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.DebugLib|x86.Build.0 = Debug|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Lib|x86.Build.0 = Debug|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Static|ARM.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Static|ARM.Build.0 = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -2609,10 +3297,16 @@ Global {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release|x86.Build.0 = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLL|ARM.Build.0 = Release|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Dll|ARM.Build.0 = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLL|x64.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLL|x64.Build.0 = Release|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Dll|x64.ActiveCfg = Release|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Dll|x64.Build.0 = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLL|x86.Build.0 = Release|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Dll|x86.ActiveCfg = Release|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Dll|x86.Build.0 = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -2627,10 +3321,16 @@ Global {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Dynamic|x86.Build.0 = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLib|ARM.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLib|ARM.Build.0 = Release|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Lib|ARM.Build.0 = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLib|x64.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLib|x64.Build.0 = Release|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Lib|x64.ActiveCfg = Release|x64 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Lib|x64.Build.0 = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLib|x86.ActiveCfg = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLib|x86.Build.0 = Release|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Lib|x86.ActiveCfg = Release|Win32 + {C00D492D-9474-4F78-80BF-86F6F337E81B}.Release-Lib|x86.Build.0 = Release|Win32 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLTO|ARM.Build.0 = Release|x64 {C00D492D-9474-4F78-80BF-86F6F337E81B}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -2650,10 +3350,16 @@ Global {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug|x86.Build.0 = Debug|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLL|ARM.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLL|ARM.Build.0 = Release|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Dll|ARM.Build.0 = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLL|x64.ActiveCfg = Debug|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLL|x64.Build.0 = Debug|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Dll|x64.Build.0 = Debug|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLL|x86.ActiveCfg = Debug|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLL|x86.Build.0 = Debug|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Dll|x86.Build.0 = Debug|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -2668,10 +3374,16 @@ Global {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugLib|ARM.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugLib|ARM.Build.0 = Release|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Lib|ARM.Build.0 = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugLib|x64.ActiveCfg = Debug|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugLib|x64.Build.0 = Debug|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Lib|x64.Build.0 = Debug|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugLib|x86.ActiveCfg = Debug|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.DebugLib|x86.Build.0 = Debug|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Lib|x86.Build.0 = Debug|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Static|ARM.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Static|ARM.Build.0 = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -2697,10 +3409,16 @@ Global {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release|x86.Build.0 = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLL|ARM.Build.0 = Release|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Dll|ARM.Build.0 = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLL|x64.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLL|x64.Build.0 = Release|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Dll|x64.ActiveCfg = Release|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Dll|x64.Build.0 = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLL|x86.Build.0 = Release|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Dll|x86.ActiveCfg = Release|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Dll|x86.Build.0 = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -2715,10 +3433,16 @@ Global {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Dynamic|x86.Build.0 = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLib|ARM.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLib|ARM.Build.0 = Release|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Lib|ARM.Build.0 = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLib|x64.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLib|x64.Build.0 = Release|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Lib|x64.ActiveCfg = Release|x64 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Lib|x64.Build.0 = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLib|x86.ActiveCfg = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLib|x86.Build.0 = Release|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Lib|x86.ActiveCfg = Release|Win32 + {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.Release-Lib|x86.Build.0 = Release|Win32 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLTO|ARM.Build.0 = Release|x64 {65B6B9E6-4D10-484B-BD8A-156FCA00DD4A}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -2738,10 +3462,16 @@ Global {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug|x86.Build.0 = Debug|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLL|ARM.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLL|ARM.Build.0 = Release|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Dll|ARM.Build.0 = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLL|x64.ActiveCfg = Debug|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLL|x64.Build.0 = Debug|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Dll|x64.Build.0 = Debug|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLL|x86.ActiveCfg = Debug|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLL|x86.Build.0 = Debug|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Dll|x86.Build.0 = Debug|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -2756,10 +3486,16 @@ Global {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugLib|ARM.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugLib|ARM.Build.0 = Release|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Lib|ARM.Build.0 = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugLib|x64.ActiveCfg = Debug|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugLib|x64.Build.0 = Debug|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Lib|x64.Build.0 = Debug|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugLib|x86.ActiveCfg = Debug|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.DebugLib|x86.Build.0 = Debug|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Lib|x86.Build.0 = Debug|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Static|ARM.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Static|ARM.Build.0 = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -2785,10 +3521,16 @@ Global {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release|x86.Build.0 = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLL|ARM.Build.0 = Release|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Dll|ARM.Build.0 = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLL|x64.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLL|x64.Build.0 = Release|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Dll|x64.ActiveCfg = Release|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Dll|x64.Build.0 = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLL|x86.Build.0 = Release|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Dll|x86.ActiveCfg = Release|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Dll|x86.Build.0 = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -2803,10 +3545,16 @@ Global {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Dynamic|x86.Build.0 = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLib|ARM.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLib|ARM.Build.0 = Release|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Lib|ARM.Build.0 = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLib|x64.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLib|x64.Build.0 = Release|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Lib|x64.ActiveCfg = Release|x64 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Lib|x64.Build.0 = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLib|x86.ActiveCfg = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLib|x86.Build.0 = Release|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Lib|x86.ActiveCfg = Release|Win32 + {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.Release-Lib|x86.Build.0 = Release|Win32 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLTO|ARM.Build.0 = Release|x64 {0DC9504B-4FF5-4590-97B3-FFD4C04F2893}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -2826,10 +3574,16 @@ Global {711397CE-E5D5-467D-9457-8716C047E50C}.Debug|x86.Build.0 = Debug|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLL|ARM.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLL|ARM.Build.0 = Release|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Dll|ARM.Build.0 = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLL|x64.ActiveCfg = Debug|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLL|x64.Build.0 = Debug|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Dll|x64.Build.0 = Debug|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLL|x86.ActiveCfg = Debug|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLL|x86.Build.0 = Debug|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Dll|x86.Build.0 = Debug|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -2844,10 +3598,16 @@ Global {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugLib|ARM.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugLib|ARM.Build.0 = Release|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Lib|ARM.Build.0 = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugLib|x64.ActiveCfg = Debug|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugLib|x64.Build.0 = Debug|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Lib|x64.Build.0 = Debug|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugLib|x86.ActiveCfg = Debug|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.DebugLib|x86.Build.0 = Debug|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Lib|x86.Build.0 = Debug|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Static|ARM.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Static|ARM.Build.0 = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -2873,10 +3633,16 @@ Global {711397CE-E5D5-467D-9457-8716C047E50C}.Release|x86.Build.0 = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLL|ARM.Build.0 = Release|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Dll|ARM.Build.0 = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLL|x64.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLL|x64.Build.0 = Release|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Dll|x64.ActiveCfg = Release|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Dll|x64.Build.0 = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLL|x86.Build.0 = Release|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Dll|x86.ActiveCfg = Release|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Dll|x86.Build.0 = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -2891,10 +3657,16 @@ Global {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Dynamic|x86.Build.0 = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|ARM.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|ARM.Build.0 = Release|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Lib|ARM.Build.0 = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|x64.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|x64.Build.0 = Release|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Lib|x64.ActiveCfg = Release|x64 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Lib|x64.Build.0 = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|x86.ActiveCfg = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLib|x86.Build.0 = Release|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Lib|x86.ActiveCfg = Release|Win32 + {711397CE-E5D5-467D-9457-8716C047E50C}.Release-Lib|x86.Build.0 = Release|Win32 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLTO|ARM.Build.0 = Release|x64 {711397CE-E5D5-467D-9457-8716C047E50C}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -2914,10 +3686,16 @@ Global {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug|x86.Build.0 = Debug|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLL|ARM.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLL|ARM.Build.0 = Release|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Dll|ARM.Build.0 = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLL|x64.ActiveCfg = Debug|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLL|x64.Build.0 = Debug|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Dll|x64.Build.0 = Debug|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLL|x86.ActiveCfg = Debug|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLL|x86.Build.0 = Debug|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Dll|x86.Build.0 = Debug|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -2932,10 +3710,16 @@ Global {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugLib|ARM.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugLib|ARM.Build.0 = Release|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Lib|ARM.Build.0 = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugLib|x64.ActiveCfg = Debug|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugLib|x64.Build.0 = Debug|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Lib|x64.Build.0 = Debug|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugLib|x86.ActiveCfg = Debug|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.DebugLib|x86.Build.0 = Debug|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Lib|x86.Build.0 = Debug|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Static|ARM.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Static|ARM.Build.0 = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -2961,10 +3745,16 @@ Global {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release|x86.Build.0 = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLL|ARM.Build.0 = Release|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Dll|ARM.Build.0 = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLL|x64.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLL|x64.Build.0 = Release|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Dll|x64.ActiveCfg = Release|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Dll|x64.Build.0 = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLL|x86.Build.0 = Release|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Dll|x86.ActiveCfg = Release|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Dll|x86.Build.0 = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -2979,10 +3769,16 @@ Global {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Dynamic|x86.Build.0 = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLib|ARM.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLib|ARM.Build.0 = Release|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Lib|ARM.Build.0 = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLib|x64.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLib|x64.Build.0 = Release|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Lib|x64.ActiveCfg = Release|x64 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Lib|x64.Build.0 = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLib|x86.ActiveCfg = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLib|x86.Build.0 = Release|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Lib|x86.ActiveCfg = Release|Win32 + {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.Release-Lib|x86.Build.0 = Release|Win32 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLTO|ARM.Build.0 = Release|x64 {2B85EA05-086B-4DF6-A140-DF52BDAEEEEA}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -3002,10 +3798,16 @@ Global {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug|x86.Build.0 = Debug|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLL|ARM.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLL|ARM.Build.0 = Release|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Dll|ARM.Build.0 = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLL|x64.ActiveCfg = Debug|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLL|x64.Build.0 = Debug|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Dll|x64.Build.0 = Debug|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLL|x86.ActiveCfg = Debug|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLL|x86.Build.0 = Debug|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Dll|x86.Build.0 = Debug|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -3020,10 +3822,16 @@ Global {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugLib|ARM.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugLib|ARM.Build.0 = Release|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Lib|ARM.Build.0 = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugLib|x64.ActiveCfg = Debug|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugLib|x64.Build.0 = Debug|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Lib|x64.Build.0 = Debug|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugLib|x86.ActiveCfg = Debug|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.DebugLib|x86.Build.0 = Debug|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Lib|x86.Build.0 = Debug|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Static|ARM.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Static|ARM.Build.0 = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -3049,10 +3857,16 @@ Global {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release|x86.Build.0 = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLL|ARM.Build.0 = Release|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Dll|ARM.Build.0 = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLL|x64.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLL|x64.Build.0 = Release|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Dll|x64.ActiveCfg = Release|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Dll|x64.Build.0 = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLL|x86.Build.0 = Release|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Dll|x86.ActiveCfg = Release|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Dll|x86.Build.0 = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -3067,10 +3881,16 @@ Global {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Dynamic|x86.Build.0 = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLib|ARM.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLib|ARM.Build.0 = Release|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Lib|ARM.Build.0 = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLib|x64.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLib|x64.Build.0 = Release|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Lib|x64.ActiveCfg = Release|x64 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Lib|x64.Build.0 = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLib|x86.ActiveCfg = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLib|x86.Build.0 = Release|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Lib|x86.ActiveCfg = Release|Win32 + {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.Release-Lib|x86.Build.0 = Release|Win32 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLTO|ARM.Build.0 = Release|x64 {36A40B5B-FBAD-4830-9F74-7B4E5788B7A6}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -3089,10 +3909,16 @@ Global {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug|x86.ActiveCfg = Debug|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug|x86.Build.0 = Debug|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Dll|ARM.Build.0 = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Dll|x64.ActiveCfg = DebugDLL|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Dll|x64.Build.0 = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Dll|x86.ActiveCfg = DebugDLL|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Dll|x86.Build.0 = DebugDLL|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLL|x64 @@ -3107,10 +3933,16 @@ Global {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Lib|ARM.Build.0 = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugLib|x64.Build.0 = DebugDLL|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Lib|x64.ActiveCfg = DebugDLL|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Lib|x64.Build.0 = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Lib|x86.ActiveCfg = DebugDLL|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Lib|x86.Build.0 = DebugDLL|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -3135,10 +3967,16 @@ Global {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release|x86.ActiveCfg = Release|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release|x86.Build.0 = Release|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Dll|ARM.Build.0 = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Dll|x64.ActiveCfg = ReleaseLTO|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Dll|x64.Build.0 = ReleaseLTO|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Dll|x86.ActiveCfg = ReleaseLTO|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Dll|x86.Build.0 = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLL|x64 @@ -3153,10 +3991,16 @@ Global {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Dynamic|x86.Build.0 = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Lib|ARM.Build.0 = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLib|x64.ActiveCfg = Release|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLib|x64.Build.0 = Release|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Lib|x64.ActiveCfg = ReleaseLTO|x64 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Lib|x64.Build.0 = ReleaseLTO|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLib|x86.ActiveCfg = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLib|x86.Build.0 = ReleaseLTO|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Lib|x86.ActiveCfg = ReleaseLTO|Win32 + {02B94302-23D6-43EF-8865-95CDE99D5DC2}.Release-Lib|x86.Build.0 = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLTO|ARM.ActiveCfg = ReleaseLTO|Win32 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 {02B94302-23D6-43EF-8865-95CDE99D5DC2}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 @@ -3174,10 +4018,16 @@ Global {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x86.ActiveCfg = Debug|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug|x86.Build.0 = Debug|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Dll|ARM.Build.0 = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Dll|x64.ActiveCfg = DebugDLLStaticDeps|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Dll|x64.Build.0 = DebugDLLStaticDeps|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Dll|x86.ActiveCfg = DebugDLLStaticDeps|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Dll|x86.Build.0 = DebugDLLStaticDeps|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLLStaticDeps|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLLStaticDeps|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugDLLStaticDeps|x64.Build.0 = DebugDLLStaticDeps|x64 @@ -3191,10 +4041,16 @@ Global {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Lib|ARM.Build.0 = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugLib|x64.Build.0 = DebugDLL|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Lib|x64.ActiveCfg = DebugDLLStaticDeps|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Lib|x64.Build.0 = DebugDLLStaticDeps|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Lib|x86.ActiveCfg = DebugDLLStaticDeps|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Lib|x86.Build.0 = DebugDLLStaticDeps|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -3219,10 +4075,16 @@ Global {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x86.ActiveCfg = Release|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.Release|x86.Build.0 = Release|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Dll|ARM.Build.0 = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Dll|x64.ActiveCfg = ReleaseLTO|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Dll|x64.Build.0 = ReleaseLTO|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Dll|x86.ActiveCfg = ReleaseLTO|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Dll|x86.Build.0 = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|ARM.ActiveCfg = ReleaseDLLStaticDeps|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLLStaticDeps|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseDLLStaticDeps|x64.Build.0 = ReleaseDLLStaticDeps|x64 @@ -3236,10 +4098,16 @@ Global {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Dynamic|x86.Build.0 = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Lib|ARM.Build.0 = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLib|x64.ActiveCfg = Release|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLib|x64.Build.0 = Release|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Lib|x64.ActiveCfg = ReleaseLTO|x64 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Lib|x64.Build.0 = ReleaseLTO|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLib|x86.ActiveCfg = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLib|x86.Build.0 = ReleaseLTO|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Lib|x86.ActiveCfg = ReleaseLTO|Win32 + {6F610EE8-7F59-4191-AB88-F63843267C02}.Release-Lib|x86.Build.0 = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|ARM.ActiveCfg = ReleaseLTO|Win32 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 {6F610EE8-7F59-4191-AB88-F63843267C02}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 @@ -3257,10 +4125,16 @@ Global {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug|x86.ActiveCfg = Debug|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug|x86.Build.0 = Debug|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Dll|ARM.Build.0 = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Dll|x64.ActiveCfg = DebugDLL|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Dll|x64.Build.0 = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Dll|x86.ActiveCfg = DebugDLL|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Dll|x86.Build.0 = DebugDLL|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLL|x64 @@ -3275,10 +4149,16 @@ Global {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Lib|ARM.Build.0 = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugLib|x64.Build.0 = DebugDLL|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Lib|x64.ActiveCfg = DebugDLL|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Lib|x64.Build.0 = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Lib|x86.ActiveCfg = DebugDLL|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Lib|x86.Build.0 = DebugDLL|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -3303,10 +4183,16 @@ Global {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release|x86.ActiveCfg = Release|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release|x86.Build.0 = Release|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Dll|ARM.Build.0 = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Dll|x64.ActiveCfg = ReleaseLTO|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Dll|x64.Build.0 = ReleaseLTO|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Dll|x86.ActiveCfg = ReleaseLTO|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Dll|x86.Build.0 = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLL|x64 @@ -3321,10 +4207,16 @@ Global {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Dynamic|x86.Build.0 = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Lib|ARM.Build.0 = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLib|x64.ActiveCfg = Release|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLib|x64.Build.0 = Release|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Lib|x64.ActiveCfg = ReleaseLTO|x64 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Lib|x64.Build.0 = ReleaseLTO|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLib|x86.ActiveCfg = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLib|x86.Build.0 = ReleaseLTO|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Lib|x86.ActiveCfg = ReleaseLTO|Win32 + {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.Release-Lib|x86.Build.0 = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLTO|ARM.ActiveCfg = ReleaseLTO|Win32 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 {CA9A4A38-CC63-4BDB-8CFB-E058965DDA32}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 @@ -3342,10 +4234,16 @@ Global {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug|x86.ActiveCfg = Debug|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug|x86.Build.0 = Debug|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Dll|ARM.Build.0 = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Dll|x64.ActiveCfg = DebugDLL|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Dll|x64.Build.0 = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Dll|x86.ActiveCfg = DebugDLL|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Dll|x86.Build.0 = DebugDLL|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLL|x64 @@ -3360,10 +4258,16 @@ Global {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Lib|ARM.Build.0 = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugLib|x64.Build.0 = DebugDLL|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Lib|x64.ActiveCfg = DebugDLL|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Lib|x64.Build.0 = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Lib|x86.ActiveCfg = DebugDLL|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Lib|x86.Build.0 = DebugDLL|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -3388,10 +4292,16 @@ Global {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release|x86.ActiveCfg = Release|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release|x86.Build.0 = Release|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Dll|ARM.Build.0 = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Dll|x64.ActiveCfg = ReleaseLTO|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Dll|x64.Build.0 = ReleaseLTO|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Dll|x86.ActiveCfg = ReleaseLTO|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Dll|x86.Build.0 = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLL|x64 @@ -3406,10 +4316,16 @@ Global {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Dynamic|x86.Build.0 = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Lib|ARM.Build.0 = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLib|x64.ActiveCfg = Release|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLib|x64.Build.0 = Release|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Lib|x64.ActiveCfg = ReleaseLTO|x64 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Lib|x64.Build.0 = ReleaseLTO|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLib|x86.ActiveCfg = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLib|x86.Build.0 = ReleaseLTO|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Lib|x86.ActiveCfg = ReleaseLTO|Win32 + {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.Release-Lib|x86.Build.0 = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLTO|ARM.ActiveCfg = ReleaseLTO|Win32 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 {070FEF2B-0C3F-4F33-9D3C-53C7330BF518}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 @@ -3427,10 +4343,16 @@ Global {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug|x86.ActiveCfg = Debug|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug|x86.Build.0 = Debug|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Dll|ARM.Build.0 = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Dll|x64.ActiveCfg = DebugDLLStaticDeps|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Dll|x64.Build.0 = DebugDLLStaticDeps|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Dll|x86.ActiveCfg = DebugDLLStaticDeps|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Dll|x86.Build.0 = DebugDLLStaticDeps|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLLStaticDeps|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLLStaticDeps|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugDLLStaticDeps|x64.Build.0 = DebugDLLStaticDeps|x64 @@ -3444,10 +4366,16 @@ Global {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Lib|ARM.Build.0 = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugLib|x64.Build.0 = DebugDLL|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Lib|x64.ActiveCfg = DebugDLLStaticDeps|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Lib|x64.Build.0 = DebugDLLStaticDeps|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Lib|x86.ActiveCfg = DebugDLLStaticDeps|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Lib|x86.Build.0 = DebugDLLStaticDeps|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -3472,10 +4400,16 @@ Global {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release|x86.ActiveCfg = Release|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release|x86.Build.0 = Release|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Dll|ARM.Build.0 = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Dll|x64.ActiveCfg = ReleaseLTO|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Dll|x64.Build.0 = ReleaseLTO|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Dll|x86.ActiveCfg = ReleaseLTO|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Dll|x86.Build.0 = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLLStaticDeps|ARM.ActiveCfg = ReleaseDLLStaticDeps|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLLStaticDeps|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseDLLStaticDeps|x64.Build.0 = ReleaseDLLStaticDeps|x64 @@ -3489,10 +4423,16 @@ Global {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Dynamic|x86.Build.0 = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Lib|ARM.Build.0 = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLib|x64.ActiveCfg = Release|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLib|x64.Build.0 = Release|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Lib|x64.ActiveCfg = ReleaseLTO|x64 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Lib|x64.Build.0 = ReleaseLTO|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLib|x86.ActiveCfg = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLib|x86.Build.0 = ReleaseLTO|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Lib|x86.ActiveCfg = ReleaseLTO|Win32 + {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.Release-Lib|x86.Build.0 = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLTO|ARM.ActiveCfg = ReleaseLTO|Win32 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 {200F3D3C-8B84-46D8-953A-6C0EBD283B5C}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 @@ -3510,10 +4450,16 @@ Global {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug|x86.ActiveCfg = Debug|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug|x86.Build.0 = Debug|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Dll|ARM.Build.0 = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Dll|x64.ActiveCfg = DebugDLL|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Dll|x64.Build.0 = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Dll|x86.ActiveCfg = DebugDLL|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Dll|x86.Build.0 = DebugDLL|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLL|x64 @@ -3528,10 +4474,16 @@ Global {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Lib|ARM.Build.0 = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugLib|x64.Build.0 = DebugDLL|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Lib|x64.ActiveCfg = DebugDLL|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Lib|x64.Build.0 = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Lib|x86.ActiveCfg = DebugDLL|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Lib|x86.Build.0 = DebugDLL|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -3556,10 +4508,16 @@ Global {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release|x86.ActiveCfg = Release|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release|x86.Build.0 = Release|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Dll|ARM.Build.0 = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Dll|x64.ActiveCfg = ReleaseLTO|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Dll|x64.Build.0 = ReleaseLTO|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Dll|x86.ActiveCfg = ReleaseLTO|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Dll|x86.Build.0 = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLL|x64 @@ -3574,10 +4532,16 @@ Global {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Dynamic|x86.Build.0 = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Lib|ARM.Build.0 = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLib|x64.ActiveCfg = Release|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLib|x64.Build.0 = Release|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Lib|x64.ActiveCfg = ReleaseLTO|x64 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Lib|x64.Build.0 = ReleaseLTO|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLib|x86.ActiveCfg = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLib|x86.Build.0 = ReleaseLTO|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Lib|x86.ActiveCfg = ReleaseLTO|Win32 + {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.Release-Lib|x86.Build.0 = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLTO|ARM.ActiveCfg = ReleaseLTO|Win32 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 {CB8BB76F-D3FF-434E-A85E-7FFC0893EC9B}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 @@ -3596,10 +4560,16 @@ Global {122A2EA4-B283-4241-9655-786DE78283B2}.Debug|x86.Build.0 = Debug|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLL|ARM.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLL|ARM.Build.0 = Release|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Dll|ARM.Build.0 = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLL|x64.ActiveCfg = Debug|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLL|x64.Build.0 = Debug|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Dll|x64.Build.0 = Debug|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLL|x86.ActiveCfg = Debug|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLL|x86.Build.0 = Debug|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Dll|x86.Build.0 = Debug|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -3614,10 +4584,16 @@ Global {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugLib|ARM.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugLib|ARM.Build.0 = Release|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Lib|ARM.Build.0 = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugLib|x64.ActiveCfg = Debug|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugLib|x64.Build.0 = Debug|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Lib|x64.Build.0 = Debug|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugLib|x86.ActiveCfg = Debug|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.DebugLib|x86.Build.0 = Debug|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Lib|x86.Build.0 = Debug|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Static|ARM.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Static|ARM.Build.0 = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -3643,10 +4619,16 @@ Global {122A2EA4-B283-4241-9655-786DE78283B2}.Release|x86.Build.0 = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLL|ARM.Build.0 = Release|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Dll|ARM.Build.0 = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLL|x64.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLL|x64.Build.0 = Release|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Dll|x64.ActiveCfg = Release|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Dll|x64.Build.0 = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLL|x86.Build.0 = Release|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Dll|x86.ActiveCfg = Release|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Dll|x86.Build.0 = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -3661,10 +4643,16 @@ Global {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Dynamic|x86.Build.0 = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLib|ARM.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLib|ARM.Build.0 = Release|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Lib|ARM.Build.0 = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLib|x64.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLib|x64.Build.0 = Release|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Lib|x64.ActiveCfg = Release|x64 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Lib|x64.Build.0 = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLib|x86.ActiveCfg = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLib|x86.Build.0 = Release|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Lib|x86.ActiveCfg = Release|Win32 + {122A2EA4-B283-4241-9655-786DE78283B2}.Release-Lib|x86.Build.0 = Release|Win32 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLTO|ARM.Build.0 = Release|x64 {122A2EA4-B283-4241-9655-786DE78283B2}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -3684,10 +4672,16 @@ Global {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug|x86.Build.0 = Debug|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLL|ARM.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLL|ARM.Build.0 = Release|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Dll|ARM.Build.0 = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLL|x64.ActiveCfg = Debug|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLL|x64.Build.0 = Debug|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Dll|x64.Build.0 = Debug|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLL|x86.ActiveCfg = Debug|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLL|x86.Build.0 = Debug|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Dll|x86.Build.0 = Debug|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -3702,10 +4696,16 @@ Global {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugLib|ARM.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugLib|ARM.Build.0 = Release|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Lib|ARM.Build.0 = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugLib|x64.ActiveCfg = Debug|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugLib|x64.Build.0 = Debug|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Lib|x64.Build.0 = Debug|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugLib|x86.ActiveCfg = Debug|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.DebugLib|x86.Build.0 = Debug|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Lib|x86.Build.0 = Debug|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Static|ARM.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Static|ARM.Build.0 = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -3731,10 +4731,16 @@ Global {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release|x86.Build.0 = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLL|ARM.Build.0 = Release|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Dll|ARM.Build.0 = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLL|x64.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLL|x64.Build.0 = Release|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Dll|x64.ActiveCfg = Release|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Dll|x64.Build.0 = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLL|x86.Build.0 = Release|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Dll|x86.ActiveCfg = Release|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Dll|x86.Build.0 = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -3749,10 +4755,16 @@ Global {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Dynamic|x86.Build.0 = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLib|ARM.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLib|ARM.Build.0 = Release|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Lib|ARM.Build.0 = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLib|x64.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLib|x64.Build.0 = Release|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Lib|x64.ActiveCfg = Release|x64 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Lib|x64.Build.0 = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLib|x86.ActiveCfg = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLib|x86.Build.0 = Release|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Lib|x86.ActiveCfg = Release|Win32 + {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.Release-Lib|x86.Build.0 = Release|Win32 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLTO|ARM.Build.0 = Release|x64 {1E6C2C1C-6453-4129-AE3F-0EE8E6599C89}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -3772,10 +4784,16 @@ Global {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug|x86.Build.0 = Debug|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLL|ARM.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLL|ARM.Build.0 = Release|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Dll|ARM.Build.0 = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLL|x64.ActiveCfg = Debug|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLL|x64.Build.0 = Debug|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Dll|x64.Build.0 = Debug|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLL|x86.ActiveCfg = Debug|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLL|x86.Build.0 = Debug|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Dll|x86.Build.0 = Debug|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -3790,10 +4808,16 @@ Global {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugLib|ARM.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugLib|ARM.Build.0 = Release|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Lib|ARM.Build.0 = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugLib|x64.ActiveCfg = Debug|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugLib|x64.Build.0 = Debug|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Lib|x64.Build.0 = Debug|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugLib|x86.ActiveCfg = Debug|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.DebugLib|x86.Build.0 = Debug|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Lib|x86.Build.0 = Debug|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Static|ARM.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Static|ARM.Build.0 = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -3819,10 +4843,16 @@ Global {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release|x86.Build.0 = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLL|ARM.Build.0 = Release|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Dll|ARM.Build.0 = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLL|x64.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLL|x64.Build.0 = Release|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Dll|x64.ActiveCfg = Release|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Dll|x64.Build.0 = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLL|x86.Build.0 = Release|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Dll|x86.ActiveCfg = Release|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Dll|x86.Build.0 = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -3837,10 +4867,16 @@ Global {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Dynamic|x86.Build.0 = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLib|ARM.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLib|ARM.Build.0 = Release|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Lib|ARM.Build.0 = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLib|x64.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLib|x64.Build.0 = Release|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Lib|x64.ActiveCfg = Release|x64 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Lib|x64.Build.0 = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLib|x86.ActiveCfg = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLib|x86.Build.0 = Release|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Lib|x86.ActiveCfg = Release|Win32 + {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.Release-Lib|x86.Build.0 = Release|Win32 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLTO|ARM.Build.0 = Release|x64 {0C4EAC26-4AAC-3525-BA45-916F44CFD660}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -3860,10 +4896,16 @@ Global {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x86.Build.0 = Debug|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLL|ARM.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLL|ARM.Build.0 = Release|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Dll|ARM.Build.0 = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLL|x64.ActiveCfg = Debug|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLL|x64.Build.0 = Debug|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Dll|x64.Build.0 = Debug|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLL|x86.ActiveCfg = Debug|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLL|x86.Build.0 = Debug|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Dll|x86.Build.0 = Debug|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -3878,10 +4920,16 @@ Global {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugLib|ARM.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugLib|ARM.Build.0 = Release|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Lib|ARM.Build.0 = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugLib|x64.ActiveCfg = Debug|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugLib|x64.Build.0 = Debug|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Lib|x64.Build.0 = Debug|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugLib|x86.ActiveCfg = Debug|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.DebugLib|x86.Build.0 = Debug|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Lib|x86.Build.0 = Debug|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Static|ARM.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Static|ARM.Build.0 = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -3905,10 +4953,16 @@ Global {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x86.Build.0 = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLL|ARM.Build.0 = Release|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Dll|ARM.Build.0 = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLL|x64.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLL|x64.Build.0 = Release|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Dll|x64.ActiveCfg = Release|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Dll|x64.Build.0 = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLL|x86.Build.0 = Release|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Dll|x86.ActiveCfg = Release|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Dll|x86.Build.0 = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -3923,10 +4977,16 @@ Global {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Dynamic|x86.Build.0 = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLib|ARM.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLib|ARM.Build.0 = Release|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Lib|ARM.Build.0 = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLib|x64.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLib|x64.Build.0 = Release|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Lib|x64.ActiveCfg = Release|x64 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Lib|x64.Build.0 = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLib|x86.ActiveCfg = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLib|x86.Build.0 = Release|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Lib|x86.ActiveCfg = Release|Win32 + {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release-Lib|x86.Build.0 = Release|Win32 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLTO|ARM.Build.0 = Release|x64 {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -3946,10 +5006,16 @@ Global {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug|x86.Build.0 = Debug|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLL|ARM.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLL|ARM.Build.0 = Release|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Dll|ARM.Build.0 = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLL|x64.ActiveCfg = Debug|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLL|x64.Build.0 = Debug|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Dll|x64.Build.0 = Debug|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLL|x86.ActiveCfg = Debug|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLL|x86.Build.0 = Debug|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Dll|x86.Build.0 = Debug|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -3964,10 +5030,16 @@ Global {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugLib|ARM.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugLib|ARM.Build.0 = Release|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Lib|ARM.Build.0 = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugLib|x64.ActiveCfg = Debug|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugLib|x64.Build.0 = Debug|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Lib|x64.Build.0 = Debug|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugLib|x86.ActiveCfg = Debug|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.DebugLib|x86.Build.0 = Debug|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Lib|x86.Build.0 = Debug|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Static|ARM.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Static|ARM.Build.0 = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -3993,10 +5065,16 @@ Global {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release|x86.Build.0 = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLL|ARM.Build.0 = Release|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Dll|ARM.Build.0 = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLL|x64.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLL|x64.Build.0 = Release|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Dll|x64.ActiveCfg = Release|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Dll|x64.Build.0 = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLL|x86.Build.0 = Release|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Dll|x86.ActiveCfg = Release|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Dll|x86.Build.0 = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -4011,10 +5089,16 @@ Global {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Dynamic|x86.Build.0 = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLib|ARM.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLib|ARM.Build.0 = Release|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Lib|ARM.Build.0 = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLib|x64.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLib|x64.Build.0 = Release|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Lib|x64.ActiveCfg = Release|x64 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Lib|x64.Build.0 = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLib|x86.ActiveCfg = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLib|x86.Build.0 = Release|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Lib|x86.ActiveCfg = Release|Win32 + {4CEFBC84-C215-11DB-8314-0800200C9A66}.Release-Lib|x86.Build.0 = Release|Win32 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLTO|ARM.Build.0 = Release|x64 {4CEFBC84-C215-11DB-8314-0800200C9A66}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -4033,10 +5117,16 @@ Global {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug|x86.ActiveCfg = Debug|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug|x86.Build.0 = Debug|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Dll|ARM.Build.0 = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Dll|x64.ActiveCfg = DebugDLLStaticDeps|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Dll|x64.Build.0 = DebugDLLStaticDeps|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Dll|x86.ActiveCfg = DebugDLLStaticDeps|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Dll|x86.Build.0 = DebugDLLStaticDeps|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLLStaticDeps|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLLStaticDeps|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugDLLStaticDeps|x64.Build.0 = DebugDLLStaticDeps|x64 @@ -4050,10 +5140,16 @@ Global {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Lib|ARM.Build.0 = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugLib|x64.Build.0 = DebugDLL|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Lib|x64.ActiveCfg = DebugDLLStaticDeps|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Lib|x64.Build.0 = DebugDLLStaticDeps|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Lib|x86.ActiveCfg = DebugDLLStaticDeps|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Lib|x86.Build.0 = DebugDLLStaticDeps|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -4078,10 +5174,16 @@ Global {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release|x86.ActiveCfg = Release|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release|x86.Build.0 = Release|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Dll|ARM.Build.0 = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Dll|x64.ActiveCfg = ReleaseLTO|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Dll|x64.Build.0 = ReleaseLTO|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Dll|x86.ActiveCfg = ReleaseLTO|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Dll|x86.Build.0 = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseDLLStaticDeps|ARM.ActiveCfg = ReleaseDLLStaticDeps|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLLStaticDeps|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseDLLStaticDeps|x64.Build.0 = ReleaseDLLStaticDeps|x64 @@ -4095,10 +5197,16 @@ Global {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Dynamic|x86.Build.0 = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Lib|ARM.Build.0 = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLib|x64.ActiveCfg = Release|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLib|x64.Build.0 = Release|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Lib|x64.ActiveCfg = ReleaseLTO|x64 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Lib|x64.Build.0 = ReleaseLTO|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLib|x86.ActiveCfg = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLib|x86.Build.0 = ReleaseLTO|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Lib|x86.ActiveCfg = ReleaseLTO|Win32 + {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.Release-Lib|x86.Build.0 = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLTO|ARM.ActiveCfg = ReleaseLTO|Win32 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 @@ -4116,10 +5224,16 @@ Global {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug|x86.ActiveCfg = Debug|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug|x86.Build.0 = Debug|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugDLL|ARM.ActiveCfg = DebugDLL|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Dll|ARM.Build.0 = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugDLL|x64.ActiveCfg = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugDLL|x64.Build.0 = DebugDLL|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Dll|x64.ActiveCfg = DebugDLL|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Dll|x64.Build.0 = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugDLL|x86.ActiveCfg = DebugDLL|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugDLL|x86.Build.0 = DebugDLL|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Dll|x86.ActiveCfg = DebugDLL|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Dll|x86.Build.0 = DebugDLL|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugDLLStaticDeps|x64.ActiveCfg = DebugDLL|x64 @@ -4134,10 +5248,16 @@ Global {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Dynamic|x86.Build.0 = DebugDLL|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugLib|ARM.ActiveCfg = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugLib|ARM.Build.0 = DebugDLL|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Lib|ARM.Build.0 = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugLib|x64.ActiveCfg = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugLib|x64.Build.0 = DebugDLL|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Lib|x64.ActiveCfg = DebugDLL|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Lib|x64.Build.0 = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugLib|x86.ActiveCfg = DebugDLL|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.DebugLib|x86.Build.0 = DebugDLL|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Lib|x86.ActiveCfg = DebugDLL|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Lib|x86.Build.0 = DebugDLL|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Static|ARM.ActiveCfg = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Static|ARM.Build.0 = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Debug-Static|x64.ActiveCfg = DebugDLL|x64 @@ -4162,10 +5282,16 @@ Global {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release|x86.ActiveCfg = Release|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release|x86.Build.0 = Release|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseDLL|ARM.ActiveCfg = ReleaseDLL|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Dll|ARM.ActiveCfg = ReleaseLTO|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Dll|ARM.Build.0 = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Dll|x64.ActiveCfg = ReleaseLTO|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Dll|x64.Build.0 = ReleaseLTO|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseDLL|x86.ActiveCfg = ReleaseDLL|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseDLL|x86.Build.0 = ReleaseDLL|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Dll|x86.ActiveCfg = ReleaseLTO|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Dll|x86.Build.0 = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseDLLStaticDeps|ARM.ActiveCfg = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseDLLStaticDeps|ARM.Build.0 = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseDLLStaticDeps|x64.ActiveCfg = ReleaseDLL|x64 @@ -4180,10 +5306,16 @@ Global {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Dynamic|x86.Build.0 = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLib|ARM.ActiveCfg = DebugDLL|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLib|ARM.Build.0 = DebugDLL|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Lib|ARM.ActiveCfg = ReleaseLTO|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Lib|ARM.Build.0 = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLib|x64.ActiveCfg = Release|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLib|x64.Build.0 = Release|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Lib|x64.ActiveCfg = ReleaseLTO|x64 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Lib|x64.Build.0 = ReleaseLTO|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLib|x86.ActiveCfg = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLib|x86.Build.0 = ReleaseLTO|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Lib|x86.ActiveCfg = ReleaseLTO|Win32 + {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.Release-Lib|x86.Build.0 = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLTO|ARM.ActiveCfg = ReleaseLTO|Win32 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLTO|x64.ActiveCfg = ReleaseLTO|x64 {1C2315EC-E08C-4E8F-AD66-917DC9C30B98}.ReleaseLTO|x64.Build.0 = ReleaseLTO|x64 @@ -4202,10 +5334,16 @@ Global {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug|x86.Build.0 = Debug|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLL|ARM.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLL|ARM.Build.0 = Release|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Dll|ARM.ActiveCfg = Release|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Dll|ARM.Build.0 = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLL|x64.ActiveCfg = Debug|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLL|x64.Build.0 = Debug|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Dll|x64.ActiveCfg = Debug|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Dll|x64.Build.0 = Debug|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLL|x86.ActiveCfg = Debug|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLL|x86.Build.0 = Debug|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Dll|x86.ActiveCfg = Debug|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Dll|x86.Build.0 = Debug|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLLStaticDeps|ARM.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLLStaticDeps|ARM.Build.0 = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugDLLStaticDeps|x64.ActiveCfg = Debug|x64 @@ -4220,10 +5358,16 @@ Global {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Dynamic|x86.Build.0 = Debug|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugLib|ARM.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugLib|ARM.Build.0 = Release|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Lib|ARM.ActiveCfg = Release|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Lib|ARM.Build.0 = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugLib|x64.ActiveCfg = Debug|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugLib|x64.Build.0 = Debug|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Lib|x64.ActiveCfg = Debug|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Lib|x64.Build.0 = Debug|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugLib|x86.ActiveCfg = Debug|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.DebugLib|x86.Build.0 = Debug|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Lib|x86.ActiveCfg = Debug|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Lib|x86.Build.0 = Debug|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Static|ARM.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Static|ARM.Build.0 = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.Debug-Static|x64.ActiveCfg = Debug|x64 @@ -4249,10 +5393,16 @@ Global {6BD59A09-0768-40D3-A04B-10F95555689B}.Release|x86.Build.0 = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLL|ARM.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLL|ARM.Build.0 = Release|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Dll|ARM.ActiveCfg = Release|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Dll|ARM.Build.0 = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLL|x64.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLL|x64.Build.0 = Release|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Dll|x64.ActiveCfg = Release|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Dll|x64.Build.0 = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLL|x86.ActiveCfg = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLL|x86.Build.0 = Release|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Dll|x86.ActiveCfg = Release|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Dll|x86.Build.0 = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLLStaticDeps|ARM.Build.0 = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseDLLStaticDeps|x64.ActiveCfg = Release|x64 @@ -4267,10 +5417,16 @@ Global {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Dynamic|x86.Build.0 = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLib|ARM.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLib|ARM.Build.0 = Release|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Lib|ARM.ActiveCfg = Release|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Lib|ARM.Build.0 = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLib|x64.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLib|x64.Build.0 = Release|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Lib|x64.ActiveCfg = Release|x64 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Lib|x64.Build.0 = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLib|x86.ActiveCfg = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLib|x86.Build.0 = Release|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Lib|x86.ActiveCfg = Release|Win32 + {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Lib|x86.Build.0 = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLTO|ARM.ActiveCfg = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLTO|ARM.Build.0 = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.ReleaseLTO|x64.ActiveCfg = Release|x64 @@ -4283,6 +5439,113 @@ Global {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Static|x64.Build.0 = Release|x64 {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Static|x86.ActiveCfg = Release|Win32 {6BD59A09-0768-40D3-A04B-10F95555689B}.Release-Static|x86.Build.0 = Release|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLL|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLL|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dll|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLL|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLL|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dll|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLL|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLL|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dll|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dll|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLLStaticDeps|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLLStaticDeps|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLLStaticDeps|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLLStaticDeps|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLLStaticDeps|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugDLLStaticDeps|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dynamic|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dynamic|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dynamic|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dynamic|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dynamic|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Dynamic|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugLib|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugLib|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Lib|ARM.ActiveCfg = Debug-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugLib|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugLib|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Lib|x64.ActiveCfg = Debug-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugLib|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DebugLib|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Lib|x86.ActiveCfg = Debug-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Lib|x86.Build.0 = Debug-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Static|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Static|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Static|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Static|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Static|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Debug-Static|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Debug|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Debug|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Debug|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Debug|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Debug|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Debug|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Release|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Release|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Release|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Release|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Release|x86.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.DLL-Import Release|x86.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release|x86.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release|x86.Build.0 = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLL|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLL|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dll|ARM.ActiveCfg = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLL|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLL|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dll|x64.ActiveCfg = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLL|x86.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLL|x86.Build.0 = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dll|x86.ActiveCfg = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dll|x86.Build.0 = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLLStaticDeps|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLLStaticDeps|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLLStaticDeps|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLLStaticDeps|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLLStaticDeps|x86.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseDLLStaticDeps|x86.Build.0 = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dynamic|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dynamic|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dynamic|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dynamic|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dynamic|x86.ActiveCfg = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Dynamic|x86.Build.0 = Release-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLib|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLib|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|ARM.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLib|x64.ActiveCfg = Release-Dll|x64 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLib|x64.Build.0 = Release-Dll|x64 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|x64.ActiveCfg = Release-Lib|x64 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|x64.Build.0 = Release-Lib|x64 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLib|x86.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLib|x86.Build.0 = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|x86.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Lib|x86.Build.0 = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLTO|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLTO|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLTO|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLTO|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLTO|x86.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.ReleaseLTO|x86.Build.0 = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Static|ARM.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Static|ARM.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Static|x64.ActiveCfg = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Static|x64.Build.0 = Debug-Dll|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Static|x86.ActiveCfg = Release-Lib|Win32 + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C}.Release-Static|x86.Build.0 = Release-Lib|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4345,5 +5608,6 @@ Global {7D865A92-C575-44A3-9D83-EC3C9E97B0B0} = {821EC489-1C8E-4CE9-816B-7ACFEA492C34} {E4CCBFE2-5DC2-44B2-92A8-447EFE6DDB6E} = {7D865A92-C575-44A3-9D83-EC3C9E97B0B0} {1C2315EC-E08C-4E8F-AD66-917DC9C30B98} = {7D865A92-C575-44A3-9D83-EC3C9E97B0B0} + {9A90BF5C-84B0-41F6-B83C-C20EADC1F46C} = {6EBA7EA6-20F5-40F9-96E3-32706D9ABD58} EndGlobalSection EndGlobal diff --git a/ring-client-uwp.vcxproj b/ring-client-uwp.vcxproj index 4e1ff7e..f40930b 100644 --- a/ring-client-uwp.vcxproj +++ b/ring-client-uwp.vcxproj @@ -141,12 +141,12 @@ <ClCompile> <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> <DisableSpecificWarnings>4453;28204;4267;4129;4973;4018;</DisableSpecificWarnings> - <AdditionalIncludeDirectories>..\ring-daemon\MSVC;..\ring-daemon\src\media;..\ring-daemon\src;..\ring-daemon\src\dring;..\ring-daemon\contrib\include;..\ring-daemon\contrib\include\pjlib;..\ring-daemon\contrib\pjproject\third_party\speex\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>contrib\qrencode-win32;..\ring-daemon\MSVC;..\ring-daemon\src\media;..\ring-daemon\src;..\ring-daemon\src\dring;..\ring-daemon\contrib\include;..\ring-daemon\contrib\include\pjlib;..\ring-daemon\contrib\pjproject\third_party\speex\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>WIN32_NATIVE;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <WholeProgramOptimization>false</WholeProgramOptimization> </ClCompile> <Link> - <AdditionalLibraryDirectories>$(SolutionDir)..\ring-daemon\contrib\boost\stage\lib;$(SolutionDir)..\ring-daemon\contrib\lib\x64;$(SolutionDir)..\ring-daemon\MSVC\x64\ReleaseLib\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalLibraryDirectories>$(SolutionDir)..\ring-daemon\contrib\boost\stage\lib;$(SolutionDir)..\ring-daemon\contrib\lib\x64;$(SolutionDir)..\ring-daemon\MSVC\x64\ReleaseLib\bin;C:\msys64\home\user\ring-project\ring-project\ring-client-uwp\x64\Release-Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> </Link> <ProjectReference> <LinkLibraryDependencies>false</LinkLibraryDependencies> @@ -155,7 +155,7 @@ <ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput> </Link> <Link> - <AdditionalDependencies>winsqlite3.lib;shell32.lib;strmiids.lib;dring.lib;WindowsApp.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>winsqlite3.lib;shell32.lib;strmiids.lib;dring.lib;WindowsApp.lib;qrcodelib.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <Link> <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> @@ -263,6 +263,7 @@ </ItemGroup> <ItemGroup> <Image Include="Assets\LockScreenLogo.scale-200.png" /> + <Image Include="Assets\qrCodeIcon.png" /> <Image Include="Assets\SplashScreen.scale-200.png" /> <Image Include="Assets\Square150x150Logo.scale-200.png" /> <Image Include="Assets\Square44x44Logo.scale-200.png" /> diff --git a/ring-client-uwp.vcxproj.filters b/ring-client-uwp.vcxproj.filters index d35e482..ff41035 100644 --- a/ring-client-uwp.vcxproj.filters +++ b/ring-client-uwp.vcxproj.filters @@ -214,6 +214,9 @@ <Image Include="Assets\TESTS\logo-ring.square-100.png"> <Filter>Assets\TESTS</Filter> </Image> + <Image Include="Assets\qrCodeIcon.png"> + <Filter>Assets</Filter> + </Image> </ItemGroup> <ItemGroup> <AppxManifest Include="Package.appxmanifest" /> -- GitLab