From 768bec39b3b0e78ada73196a723bf81a17871acf Mon Sep 17 00:00:00 2001 From: Daniel Borges Date: Sat, 18 Jan 2014 15:06:11 +0100 Subject: [PATCH] initial commit --- BitBoxWin32/BitBoxWin32.sln | 20 + BitBoxWin32/BitBoxWin32/3D.h | 73 + BitBoxWin32/BitBoxWin32/BitBoxWin32.vcproj | 267 + BitBoxWin32/BitBoxWin32/channel.cpp | 36 + BitBoxWin32/BitBoxWin32/channel.h | 28 + BitBoxWin32/BitBoxWin32/glext.h | 8949 +++++++ BitBoxWin32/BitBoxWin32/main.cpp | 692 + BitBoxWin32/BitBoxWin32/midi.cpp | 42 + BitBoxWin32/BitBoxWin32/midi.h | 8 + BitBoxWin32/BitBoxWin32/options.h | 8 + BitBoxWin32/BitBoxWin32/psg.cpp | 76 + BitBoxWin32/BitBoxWin32/psg.h | 47 + BitBoxWin32/BitBoxWin32/synth.cpp | 292 + BitBoxWin32/BitBoxWin32/synth.h | 60 + BitBoxWin32/BitBoxWin32/trig.c | 11 + BitBoxWin32/BitBoxWin32/trig.h | 25 + BitBoxWin32/BitBoxWin32/tune.cpp | 249 + BitBoxWin32/BitBoxWin32/tune.h | 25 + DisplayListTestCube/Makefile | 129 + DisplayListTestCube/make.bat | 2 + DisplayListTestCube/source/ds_arm9_crt0.s | 369 + DisplayListTestCube/source/main.c | 558 + DisplayListTestCube/source/options.h | 8 + LICENSE | 10 + README.md | 4 +- demo/Makefile | 28 + demo/final/bitbox.nds | Bin 0 -> 4093 bytes demo/final/bitbox.nfo | 35 + demo/final/bitbox.safe.nds | Bin 0 -> 10249 bytes demo/final/bitbox.zip | Bin 0 -> 47587 bytes demo/make.bat | 2 + demo/src7/Makefile | 38 + demo/src7/src/main.s | 208 + demo/src7/src/tune | Bin 0 -> 4888 bytes demo/src9/Makefile | 38 + demo/src9/src/3D.h | 73 + demo/src9/src/3D.s | 25 + demo/src9/src/ds_arm9_crt0.s | 203 + demo/src9/src/init.s | 52 + demo/src9/src/main.c | 573 + demo/src9/src/msg | Bin 0 -> 32 bytes demo/src9/src/msg.s | 68 + demo/src9/src/options.h | 8 + demo/src9/src/trig.c | 12 + demo/src9/src/trig.h | 17 + gfx/abc.lz77 | Bin 0 -> 192 bytes gfx/abc.png | Bin 0 -> 490 bytes gfx/abc.raw | Bin 0 -> 304 bytes gfx/abc123.png | Bin 0 -> 472 bytes gfx/abc4.lz77 | Bin 0 -> 156 bytes gfx/abc4.png | Bin 0 -> 496 bytes gfx/abc4.raw | Bin 0 -> 240 bytes gfx/cube.cpp | 64 + gfx/end.png | Bin 0 -> 231 bytes gfx/fin.png | Bin 0 -> 226 bytes gfx/font.bin | Bin 0 -> 96 bytes gfx/font.lz77 | Bin 0 -> 20 bytes gfx/font.png | Bin 0 -> 311 bytes gfx/fs.cpp | 108 + gfx/robot.blend | Bin 0 -> 170628 bytes gfx/robot.cpp | 264 + gfx/robot.simple.cpp | 194 + gfx/text.bin | Bin 0 -> 152 bytes gfx/text.lz77 | Bin 0 -> 72 bytes gfx/text.png | Bin 0 -> 330 bytes tools/fastcos.py | 19 + tools/img2bw/Makefile | 60 + tools/img2bw/freeimage-license.txt | 142 + tools/img2bw/freeimage/FreeImage.dll | Bin 0 -> 2088960 bytes tools/img2bw/freeimage/FreeImage.h | 1059 + tools/img2bw/freeimage/FreeImage.lib | Bin 0 -> 58886 bytes tools/img2bw/img2bw | Bin 0 -> 10975 bytes tools/img2bw/img2bwbin.exe | Bin 0 -> 31744 bytes tools/img2bw/img2bwbin.sln | 20 + tools/img2bw/img2bwbin.vcproj | 192 + tools/img2bw/src/main.c | 62 + tools/lz77/Makefile | 60 + tools/lz77/lz77 | Bin 0 -> 14552 bytes tools/lz77/src/lz77.c | 510 + tools/ndsbuilder/Debug/ndsbuilder.exe | Bin 0 -> 29696 bytes tools/ndsbuilder/ndsbuilder.sln | 20 + tools/ndsbuilder/ndsbuilder/main.cpp | 112 + tools/ndsbuilder/ndsbuilder/ndsbuilder.vcproj | 185 + tools/projection.py | 36 + tools/tracker/Makefile | 719 + tools/tracker/SDL.dll | Bin 0 -> 321536 bytes tools/tracker/TODO | 4 + tools/tracker/Tracker.exe | Bin 0 -> 45056 bytes tools/tracker/Tracker.vcproj | 382 + tools/tracker/data/bg.bmp | Bin 0 -> 921654 bytes tools/tracker/data/font.bmp | Bin 0 -> 18486 bytes tools/tracker/data/palette.bmp | Bin 0 -> 74314 bytes .../packages/portaudio/COMPILING.DARWIN | 1 + tools/tracker/packages/portaudio/Doxyfile | 239 + tools/tracker/packages/portaudio/LICENSE.txt | 81 + tools/tracker/packages/portaudio/Makefile.in | 212 + tools/tracker/packages/portaudio/README.txt | 96 + tools/tracker/packages/portaudio/SConstruct | 194 + .../packages/portaudio/V19-devel-readme.txt | 129 + tools/tracker/packages/portaudio/aclocal.m4 | 6627 +++++ .../packages/portaudio/bindings/cpp/AUTHORS | 0 .../packages/portaudio/bindings/cpp/COPYING | 31 + .../packages/portaudio/bindings/cpp/ChangeLog | 178 + .../packages/portaudio/bindings/cpp/INSTALL | 236 + .../portaudio/bindings/cpp/Makefile.am | 7 + .../portaudio/bindings/cpp/Makefile.in | 642 + .../packages/portaudio/bindings/cpp/NEWS | 0 .../packages/portaudio/bindings/cpp/README | 0 .../portaudio/bindings/cpp/SConscript | 64 + .../portaudio/bindings/cpp/aclocal.m4 | 7336 +++++ .../portaudio/bindings/cpp/bin/Makefile.am | 9 + .../portaudio/bindings/cpp/bin/Makefile.in | 470 + .../bindings/cpp/build/gnu/Makefile.in | 106 + .../bindings/cpp/build/gnu/OUT_OF_DATE | 0 .../bindings/cpp/build/gnu/aclocal.m4 | 57 + .../bindings/cpp/build/gnu/config.guess | 1308 + .../bindings/cpp/build/gnu/config.sub | 1505 ++ .../bindings/cpp/build/gnu/configure | 4297 +++ .../bindings/cpp/build/gnu/configure.ac | 214 + .../bindings/cpp/build/gnu/install-sh | 251 + .../bindings/cpp/build/vc6/devs_example.dsp | 248 + .../bindings/cpp/build/vc6/devs_example.dsw | 44 + .../bindings/cpp/build/vc6/sine_example.dsp | 252 + .../bindings/cpp/build/vc6/sine_example.dsw | 44 + .../bindings/cpp/build/vc6/static_library.dsp | 395 + .../bindings/cpp/build/vc6/static_library.dsw | 29 + .../bindings/cpp/build/vc7/OUT_OF_DATE | 0 .../bindings/cpp/build/vc7_1/devs_example.sln | 30 + .../cpp/build/vc7_1/devs_example.vcproj | 195 + .../bindings/cpp/build/vc7_1/sine_example.sln | 30 + .../cpp/build/vc7_1/sine_example.vcproj | 327 + .../cpp/build/vc7_1/static_library.sln | 21 + .../cpp/build/vc7_1/static_library.vcproj | 218 + .../packages/portaudio/bindings/cpp/configure | 21505 +++++++++++++++ .../portaudio/bindings/cpp/configure.ac | 54 + .../portaudio/bindings/cpp/doc/Makefile.am | 5 + .../portaudio/bindings/cpp/doc/Makefile.in | 326 + .../portaudio/bindings/cpp/doc/README | 34 + .../portaudio/bindings/cpp/doc/config.doxy | 211 + .../bindings/cpp/doc/config.doxy.linux | 210 + .../portaudio/bindings/cpp/example/devs.cxx | 177 + .../portaudio/bindings/cpp/example/sine.cxx | 137 + .../bindings/cpp/include/Makefile.am | 22 + .../bindings/cpp/include/Makefile.in | 423 + .../portaudiocpp/AsioDeviceAdapter.hxx | 44 + .../cpp/include/portaudiocpp/AutoSystem.hxx | 62 + .../include/portaudiocpp/BlockingStream.hxx | 45 + .../portaudiocpp/CFunCallbackStream.hxx | 49 + .../portaudiocpp/CallbackInterface.hxx | 45 + .../include/portaudiocpp/CallbackStream.hxx | 40 + .../portaudiocpp/CppFunCallbackStream.hxx | 86 + .../cpp/include/portaudiocpp/Device.hxx | 91 + .../DirectionSpecificStreamParameters.hxx | 77 + .../cpp/include/portaudiocpp/Exception.hxx | 108 + .../cpp/include/portaudiocpp/HostApi.hxx | 76 + .../portaudiocpp/InterfaceCallbackStream.hxx | 49 + .../portaudiocpp/MemFunCallbackStream.hxx | 107 + .../cpp/include/portaudiocpp/PortAudioCpp.hxx | 109 + .../include/portaudiocpp/SampleDataFormat.hxx | 35 + .../cpp/include/portaudiocpp/Stream.hxx | 82 + .../include/portaudiocpp/StreamParameters.hxx | 77 + .../cpp/include/portaudiocpp/System.hxx | 107 + .../portaudiocpp/SystemDeviceIterator.hxx | 66 + .../portaudiocpp/SystemHostApiIterator.hxx | 61 + .../portaudio/bindings/cpp/lib/Makefile.am | 26 + .../portaudio/bindings/cpp/lib/Makefile.in | 615 + .../portaudio/bindings/cpp/portaudiocpp.pc.in | 12 + .../source/portaudiocpp/AsioDeviceAdapter.cxx | 83 + .../source/portaudiocpp/BlockingStream.cxx | 100 + .../portaudiocpp/CFunCallbackStream.cxx | 41 + .../source/portaudiocpp/CallbackInterface.cxx | 25 + .../source/portaudiocpp/CallbackStream.cxx | 20 + .../portaudiocpp/CppFunCallbackStream.cxx | 81 + .../cpp/source/portaudiocpp/Device.cxx | 168 + .../DirectionSpecificStreamParameters.cxx | 163 + .../cpp/source/portaudiocpp/Exception.cxx | 123 + .../cpp/source/portaudiocpp/HostApi.cxx | 121 + .../portaudiocpp/InterfaceCallbackStream.cxx | 45 + .../portaudiocpp/MemFunCallbackStream.cxx | 4 + .../cpp/source/portaudiocpp/Stream.cxx | 195 + .../source/portaudiocpp/StreamParameters.cxx | 165 + .../cpp/source/portaudiocpp/System.cxx | 308 + .../portaudiocpp/SystemDeviceIterator.cxx | 60 + .../portaudiocpp/SystemHostApiIterator.cxx | 59 + .../portaudio/build/dev-cpp/Makefile-dll | 78 + .../portaudio/build/dev-cpp/Makefile-static | 75 + .../portaudio/build/dev-cpp/portaudio-dll.dev | 209 + .../build/dev-cpp/portaudio-static.dev | 209 + .../portaudio/build/dev-cpp/readme.txt | 23 + .../portaudio/build/msvc/portaudio.def | 43 + .../portaudio/build/msvc/portaudio.dsp | 265 + .../portaudio/build/msvc/portaudio.dsw | 29 + .../portaudio/build/msvc/portaudio.sln | 26 + .../portaudio/build/msvc/portaudio.vcproj | 1471 + .../packages/portaudio/build/msvc/readme.txt | 80 + .../portaudio/build/scons/SConscript_common | 28 + .../portaudio/build/scons/SConscript_opts | 92 + tools/tracker/packages/portaudio/config.guess | 1388 + tools/tracker/packages/portaudio/config.sub | 1489 ++ tools/tracker/packages/portaudio/configure | 22294 ++++++++++++++++ tools/tracker/packages/portaudio/configure.in | 320 + tools/tracker/packages/portaudio/depcomp | 530 + .../packages/portaudio/doc/src/license.dox | 38 + .../packages/portaudio/doc/src/mainpage.dox | 44 + .../packages/portaudio/doc/src/srcguide.dox | 38 + .../portaudio/doc/utils/checkfiledocs.py | 76 + tools/tracker/packages/portaudio/fixdir.bat | 19 + tools/tracker/packages/portaudio/fixfile.bat | 7 + .../packages/portaudio/include/pa_asio.h | 129 + .../packages/portaudio/include/pa_jack.h | 75 + .../portaudio/include/pa_linux_alsa.h | 93 + .../packages/portaudio/include/pa_mac_core.h | 171 + .../packages/portaudio/include/pa_win_ds.h | 100 + .../portaudio/include/pa_win_waveformat.h | 180 + .../packages/portaudio/include/pa_win_wmme.h | 176 + .../packages/portaudio/include/portaudio.h | 1133 + tools/tracker/packages/portaudio/index.html | 105 + tools/tracker/packages/portaudio/install-sh | 251 + tools/tracker/packages/portaudio/ltmain.sh | 6971 +++++ tools/tracker/packages/portaudio/missing | 360 + .../packages/portaudio/pablio/README.txt | 45 + .../packages/portaudio/pablio/pablio.c | 314 + .../packages/portaudio/pablio/pablio.def | 35 + .../packages/portaudio/pablio/pablio.h | 116 + .../packages/portaudio/pablio/test_rw.c | 105 + .../packages/portaudio/pablio/test_rw_echo.c | 129 + .../packages/portaudio/pablio/test_w_saw.c | 114 + .../packages/portaudio/pablio/test_w_saw8.c | 112 + .../packages/portaudio/portaudio-2.0.pc.in | 12 + .../packages/portaudio/portaudio_x86.def | 15 + .../packages/portaudio/portaudio_x86.exp | Bin 0 -> 2187 bytes .../packages/portaudio/portaudio_x86.lib | Bin 0 -> 4420 bytes .../tracker/packages/portaudio/src/SConscript | 211 + .../portaudio/src/common/pa_allocation.c | 243 + .../portaudio/src/common/pa_allocation.h | 104 + .../portaudio/src/common/pa_converters.c | 1935 ++ .../portaudio/src/common/pa_converters.h | 263 + .../portaudio/src/common/pa_cpuload.c | 105 + .../portaudio/src/common/pa_cpuload.h | 72 + .../portaudio/src/common/pa_debugprint.c | 107 + .../portaudio/src/common/pa_debugprint.h | 149 + .../packages/portaudio/src/common/pa_dither.c | 213 + .../packages/portaudio/src/common/pa_dither.h | 100 + .../portaudio/src/common/pa_endianness.h | 141 + .../packages/portaudio/src/common/pa_front.c | 1760 ++ .../portaudio/src/common/pa_hostapi.h | 253 + .../portaudio/src/common/pa_process.c | 1772 ++ .../portaudio/src/common/pa_process.h | 750 + .../portaudio/src/common/pa_ringbuffer.c | 285 + .../portaudio/src/common/pa_ringbuffer.h | 198 + .../portaudio/src/common/pa_skeleton.c | 816 + .../packages/portaudio/src/common/pa_stream.c | 150 + .../packages/portaudio/src/common/pa_stream.h | 205 + .../packages/portaudio/src/common/pa_trace.c | 97 + .../packages/portaudio/src/common/pa_trace.h | 79 + .../packages/portaudio/src/common/pa_types.h | 107 + .../packages/portaudio/src/common/pa_util.h | 159 + .../src/hostapi/alsa/pa_linux_alsa.c | 3563 +++ .../src/hostapi/asihpi/pa_linux_asihpi.c | 2910 ++ .../src/hostapi/asio/ASIO-README.txt | 137 + .../src/hostapi/asio/Callback_adaptation_.pdf | Bin 0 -> 50527 bytes .../portaudio/src/hostapi/asio/Pa_ASIO.pdf | Bin 0 -> 50778 bytes .../hostapi/asio/iasiothiscallresolver.cpp | 563 + .../src/hostapi/asio/iasiothiscallresolver.h | 197 + .../portaudio/src/hostapi/asio/pa_asio.cpp | 3023 +++ .../portaudio/src/hostapi/coreaudio/notes.txt | 196 + .../src/hostapi/coreaudio/pa_mac_core.c | 2327 ++ .../hostapi/coreaudio/pa_mac_core_blocking.c | 585 + .../hostapi/coreaudio/pa_mac_core_blocking.h | 136 + .../hostapi/coreaudio/pa_mac_core_internal.h | 164 + .../src/hostapi/coreaudio/pa_mac_core_old.c | 913 + .../hostapi/coreaudio/pa_mac_core_utilities.c | 620 + .../hostapi/coreaudio/pa_mac_core_utilities.h | 205 + .../portaudio/src/hostapi/dsound/pa_win_ds.c | 2510 ++ .../src/hostapi/dsound/pa_win_ds_dynlink.c | 180 + .../src/hostapi/dsound/pa_win_ds_dynlink.h | 95 + .../portaudio/src/hostapi/jack/pa_jack.c | 1761 ++ .../src/hostapi/oss/low_latency_tip.txt | Bin 0 -> 3111 bytes .../portaudio/src/hostapi/oss/pa_unix_oss.c | 1955 ++ .../portaudio/src/hostapi/oss/recplay.c | 114 + .../src/hostapi/wasapi/pa_win_wasapi.cpp | 1911 ++ .../src/hostapi/wdmks/pa_win_wdmks.c | 3283 +++ .../portaudio/src/hostapi/wdmks/readme.txt | 82 + .../portaudio/src/hostapi/wmme/pa_win_wmme.c | 3900 +++ .../src/os/mac_osx/pa_mac_hostapis.c | 87 + .../portaudio/src/os/unix/pa_unix_hostapis.c | 78 + .../portaudio/src/os/unix/pa_unix_util.c | 666 + .../portaudio/src/os/unix/pa_unix_util.h | 224 + .../portaudio/src/os/win/pa_win_hostapis.c | 100 + .../portaudio/src/os/win/pa_win_util.c | 147 + .../portaudio/src/os/win/pa_win_waveformat.c | 159 + .../portaudio/src/os/win/pa_win_wdmks_utils.c | 260 + .../portaudio/src/os/win/pa_win_wdmks_utils.h | 65 + .../src/os/win/pa_x86_plain_converters.c | 1219 + .../src/os/win/pa_x86_plain_converters.h | 60 + .../packages/portaudio/test/README.txt | 60 + .../packages/portaudio/test/debug_convert.c | 138 + .../portaudio/test/debug_dither_calc.c | 62 + .../packages/portaudio/test/debug_dual.c | 190 + .../packages/portaudio/test/debug_multi_in.c | 186 + .../packages/portaudio/test/debug_multi_out.c | 151 + .../packages/portaudio/test/debug_record.c | 346 + .../portaudio/test/debug_record_reuse.c | 358 + .../packages/portaudio/test/debug_sine.c | 199 + .../packages/portaudio/test/debug_sine_amp.c | 164 + .../portaudio/test/debug_sine_formats.c | 209 + .../packages/portaudio/test/debug_srate.c | 272 + .../packages/portaudio/test/debug_test1.c | 114 + .../tracker/packages/portaudio/test/pa_devs.c | 238 + .../tracker/packages/portaudio/test/pa_fuzz.c | 176 + .../packages/portaudio/test/pa_minlat.c | 194 + .../packages/portaudio/test/paqa_devs.c | 355 + .../packages/portaudio/test/paqa_errs.c | 387 + .../tracker/packages/portaudio/test/patest1.c | 200 + .../packages/portaudio/test/patest_buffer.c | 200 + .../portaudio/test/patest_callbackstop.c | 248 + .../packages/portaudio/test/patest_clip.c | 186 + .../packages/portaudio/test/patest_dither.c | 186 + .../portaudio/test/patest_dsound_surround.c | 205 + .../packages/portaudio/test/patest_hang.c | 160 + .../portaudio/test/patest_in_overflow.c | 232 + .../packages/portaudio/test/patest_latency.c | 189 + .../portaudio/test/patest_leftright.c | 181 + .../packages/portaudio/test/patest_longsine.c | 147 + .../packages/portaudio/test/patest_many.c | 206 + .../packages/portaudio/test/patest_maxsines.c | 212 + .../packages/portaudio/test/patest_mono.c | 155 + .../test/patest_mono_asio_channel_select.c | 166 + .../portaudio/test/patest_multi_sine.c | 201 + .../portaudio/test/patest_out_underflow.c | 225 + .../packages/portaudio/test/patest_pink.c | 276 + .../packages/portaudio/test/patest_prime.c | 230 + .../portaudio/test/patest_read_record.c | 236 + .../portaudio/test/patest_read_write_wire.c | 215 + .../packages/portaudio/test/patest_record.c | 344 + .../packages/portaudio/test/patest_ringmix.c | 86 + .../packages/portaudio/test/patest_saw.c | 133 + .../packages/portaudio/test/patest_sine.c | 172 + .../packages/portaudio/test/patest_sine8.c | 221 + .../portaudio/test/patest_sine_channelmaps.c | 184 + .../portaudio/test/patest_sine_formats.c | 203 + .../portaudio/test/patest_sine_time.c | 215 + .../portaudio/test/patest_start_stop.c | 168 + .../packages/portaudio/test/patest_stop.c | 320 + .../portaudio/test/patest_stop_playout.c | 439 + .../packages/portaudio/test/patest_sync.c | 267 + .../packages/portaudio/test/patest_timing.c | 173 + .../portaudio/test/patest_toomanysines.c | 181 + .../portaudio/test/patest_two_rates.c | 178 + .../portaudio/test/patest_underflow.c | 158 + .../packages/portaudio/test/patest_wire.c | 292 + .../portaudio/test/patest_wmme_surround.c | 206 + .../portaudio/test/patest_write_sine.c | 155 + .../portaudio/test/patest_write_stop.c | 165 + .../packages/portaudio/testcvs/changeme.txt | 8 + tools/tracker/plop.txt | 1183 + tools/tracker/portaudio_x86.dll | Bin 0 -> 81920 bytes tools/tracker/src/channel.cpp | 36 + tools/tracker/src/channel.h | 28 + tools/tracker/src/copy.h | 10 + tools/tracker/src/font.cpp | 32 + tools/tracker/src/font.h | 15 + tools/tracker/src/gui.cpp | 80 + tools/tracker/src/gui.h | 28 + tools/tracker/src/guibutton.cpp | 16 + tools/tracker/src/guibutton.h | 20 + tools/tracker/src/guichannel.cpp | 302 + tools/tracker/src/guichannel.h | 34 + tools/tracker/src/guiclock.cpp | 27 + tools/tracker/src/guiclock.h | 14 + tools/tracker/src/guielement.cpp | 33 + tools/tracker/src/guielement.h | 28 + tools/tracker/src/guievents.cpp | 13 + tools/tracker/src/guievents.h | 12 + tools/tracker/src/guimute.cpp | 29 + tools/tracker/src/guimute.h | 15 + tools/tracker/src/guiname.cpp | 53 + tools/tracker/src/guiname.h | 20 + tools/tracker/src/guioscilloscope.cpp | 55 + tools/tracker/src/guioscilloscope.h | 15 + tools/tracker/src/guispectrum.cpp | 90 + tools/tracker/src/guispectrum.h | 23 + tools/tracker/src/guistatusbar.cpp | 33 + tools/tracker/src/guistatusbar.h | 15 + tools/tracker/src/guitime.cpp | 91 + tools/tracker/src/guitime.h | 24 + tools/tracker/src/guivalue.cpp | 63 + tools/tracker/src/guivalue.h | 25 + tools/tracker/src/guivu.cpp | 104 + tools/tracker/src/guivu.h | 22 + tools/tracker/src/guiwaveout.cpp | 24 + tools/tracker/src/guiwaveout.h | 19 + tools/tracker/src/main.cpp | 321 + tools/tracker/src/midi.cpp | 42 + tools/tracker/src/midi.h | 8 + tools/tracker/src/palette.cpp | 19 + tools/tracker/src/palette.h | 8 + tools/tracker/src/psg.cpp | 76 + tools/tracker/src/psg.h | 47 + tools/tracker/src/synth.cpp | 301 + tools/tracker/src/synth.h | 60 + tools/tracker/src/tune.cpp | 246 + tools/tracker/src/tune.h | 25 + .../stuff/NoteHelper/NoteHelper.vcproj | 188 + tools/tracker/stuff/header.py | 17 + tools/tracker/stuff/note | Bin 0 -> 8108 bytes tools/tracker/stuff/note.cpp | 71 + tools/tracker/tracker.sln | 26 + 408 files changed, 171325 insertions(+), 2 deletions(-) create mode 100644 BitBoxWin32/BitBoxWin32.sln create mode 100644 BitBoxWin32/BitBoxWin32/3D.h create mode 100644 BitBoxWin32/BitBoxWin32/BitBoxWin32.vcproj create mode 100644 BitBoxWin32/BitBoxWin32/channel.cpp create mode 100644 BitBoxWin32/BitBoxWin32/channel.h create mode 100644 BitBoxWin32/BitBoxWin32/glext.h create mode 100644 BitBoxWin32/BitBoxWin32/main.cpp create mode 100644 BitBoxWin32/BitBoxWin32/midi.cpp create mode 100644 BitBoxWin32/BitBoxWin32/midi.h create mode 100644 BitBoxWin32/BitBoxWin32/options.h create mode 100644 BitBoxWin32/BitBoxWin32/psg.cpp create mode 100644 BitBoxWin32/BitBoxWin32/psg.h create mode 100644 BitBoxWin32/BitBoxWin32/synth.cpp create mode 100644 BitBoxWin32/BitBoxWin32/synth.h create mode 100644 BitBoxWin32/BitBoxWin32/trig.c create mode 100644 BitBoxWin32/BitBoxWin32/trig.h create mode 100644 BitBoxWin32/BitBoxWin32/tune.cpp create mode 100644 BitBoxWin32/BitBoxWin32/tune.h create mode 100644 DisplayListTestCube/Makefile create mode 100644 DisplayListTestCube/make.bat create mode 100644 DisplayListTestCube/source/ds_arm9_crt0.s create mode 100644 DisplayListTestCube/source/main.c create mode 100644 DisplayListTestCube/source/options.h create mode 100644 demo/Makefile create mode 100644 demo/final/bitbox.nds create mode 100644 demo/final/bitbox.nfo create mode 100644 demo/final/bitbox.safe.nds create mode 100644 demo/final/bitbox.zip create mode 100644 demo/make.bat create mode 100644 demo/src7/Makefile create mode 100644 demo/src7/src/main.s create mode 100644 demo/src7/src/tune create mode 100644 demo/src9/Makefile create mode 100644 demo/src9/src/3D.h create mode 100644 demo/src9/src/3D.s create mode 100644 demo/src9/src/ds_arm9_crt0.s create mode 100644 demo/src9/src/init.s create mode 100644 demo/src9/src/main.c create mode 100644 demo/src9/src/msg create mode 100644 demo/src9/src/msg.s create mode 100644 demo/src9/src/options.h create mode 100644 demo/src9/src/trig.c create mode 100644 demo/src9/src/trig.h create mode 100644 gfx/abc.lz77 create mode 100644 gfx/abc.png create mode 100644 gfx/abc.raw create mode 100644 gfx/abc123.png create mode 100644 gfx/abc4.lz77 create mode 100644 gfx/abc4.png create mode 100644 gfx/abc4.raw create mode 100644 gfx/cube.cpp create mode 100644 gfx/end.png create mode 100644 gfx/fin.png create mode 100644 gfx/font.bin create mode 100644 gfx/font.lz77 create mode 100644 gfx/font.png create mode 100644 gfx/fs.cpp create mode 100644 gfx/robot.blend create mode 100644 gfx/robot.cpp create mode 100644 gfx/robot.simple.cpp create mode 100644 gfx/text.bin create mode 100644 gfx/text.lz77 create mode 100644 gfx/text.png create mode 100644 tools/fastcos.py create mode 100644 tools/img2bw/Makefile create mode 100644 tools/img2bw/freeimage-license.txt create mode 100644 tools/img2bw/freeimage/FreeImage.dll create mode 100644 tools/img2bw/freeimage/FreeImage.h create mode 100644 tools/img2bw/freeimage/FreeImage.lib create mode 100644 tools/img2bw/img2bw create mode 100644 tools/img2bw/img2bwbin.exe create mode 100644 tools/img2bw/img2bwbin.sln create mode 100644 tools/img2bw/img2bwbin.vcproj create mode 100644 tools/img2bw/src/main.c create mode 100644 tools/lz77/Makefile create mode 100644 tools/lz77/lz77 create mode 100644 tools/lz77/src/lz77.c create mode 100644 tools/ndsbuilder/Debug/ndsbuilder.exe create mode 100644 tools/ndsbuilder/ndsbuilder.sln create mode 100644 tools/ndsbuilder/ndsbuilder/main.cpp create mode 100644 tools/ndsbuilder/ndsbuilder/ndsbuilder.vcproj create mode 100644 tools/projection.py create mode 100644 tools/tracker/Makefile create mode 100644 tools/tracker/SDL.dll create mode 100644 tools/tracker/TODO create mode 100644 tools/tracker/Tracker.exe create mode 100644 tools/tracker/Tracker.vcproj create mode 100644 tools/tracker/data/bg.bmp create mode 100644 tools/tracker/data/font.bmp create mode 100644 tools/tracker/data/palette.bmp create mode 100644 tools/tracker/packages/portaudio/COMPILING.DARWIN create mode 100644 tools/tracker/packages/portaudio/Doxyfile create mode 100644 tools/tracker/packages/portaudio/LICENSE.txt create mode 100644 tools/tracker/packages/portaudio/Makefile.in create mode 100644 tools/tracker/packages/portaudio/README.txt create mode 100644 tools/tracker/packages/portaudio/SConstruct create mode 100644 tools/tracker/packages/portaudio/V19-devel-readme.txt create mode 100644 tools/tracker/packages/portaudio/aclocal.m4 create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/AUTHORS create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/COPYING create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/ChangeLog create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/INSTALL create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/Makefile.am create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/Makefile.in create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/NEWS create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/README create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/SConscript create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/aclocal.m4 create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/bin/Makefile.am create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/bin/Makefile.in create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/gnu/Makefile.in create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/gnu/OUT_OF_DATE create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/gnu/aclocal.m4 create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/gnu/config.guess create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/gnu/config.sub create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/gnu/configure create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/gnu/configure.ac create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/gnu/install-sh create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc6/devs_example.dsp create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc6/devs_example.dsw create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc6/sine_example.dsp create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc6/sine_example.dsw create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc6/static_library.dsp create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc6/static_library.dsw create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc7/OUT_OF_DATE create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/devs_example.sln create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/devs_example.vcproj create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/sine_example.sln create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/sine_example.vcproj create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/static_library.sln create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/static_library.vcproj create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/configure create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/configure.ac create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/doc/Makefile.am create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/doc/Makefile.in create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/doc/README create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/doc/config.doxy create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/doc/config.doxy.linux create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/example/devs.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/example/sine.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/Makefile.am create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/Makefile.in create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/AsioDeviceAdapter.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/AutoSystem.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/BlockingStream.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/CFunCallbackStream.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/CallbackInterface.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/CallbackStream.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/CppFunCallbackStream.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Device.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/DirectionSpecificStreamParameters.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Exception.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/HostApi.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/InterfaceCallbackStream.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/MemFunCallbackStream.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/PortAudioCpp.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SampleDataFormat.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Stream.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/StreamParameters.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/System.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SystemDeviceIterator.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SystemHostApiIterator.hxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/lib/Makefile.am create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/lib/Makefile.in create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/portaudiocpp.pc.in create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/BlockingStream.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CFunCallbackStream.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CallbackInterface.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CallbackStream.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CppFunCallbackStream.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Device.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/DirectionSpecificStreamParameters.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Exception.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/HostApi.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/MemFunCallbackStream.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Stream.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/StreamParameters.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/System.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/SystemDeviceIterator.cxx create mode 100644 tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/SystemHostApiIterator.cxx create mode 100644 tools/tracker/packages/portaudio/build/dev-cpp/Makefile-dll create mode 100644 tools/tracker/packages/portaudio/build/dev-cpp/Makefile-static create mode 100644 tools/tracker/packages/portaudio/build/dev-cpp/portaudio-dll.dev create mode 100644 tools/tracker/packages/portaudio/build/dev-cpp/portaudio-static.dev create mode 100644 tools/tracker/packages/portaudio/build/dev-cpp/readme.txt create mode 100644 tools/tracker/packages/portaudio/build/msvc/portaudio.def create mode 100644 tools/tracker/packages/portaudio/build/msvc/portaudio.dsp create mode 100644 tools/tracker/packages/portaudio/build/msvc/portaudio.dsw create mode 100644 tools/tracker/packages/portaudio/build/msvc/portaudio.sln create mode 100644 tools/tracker/packages/portaudio/build/msvc/portaudio.vcproj create mode 100644 tools/tracker/packages/portaudio/build/msvc/readme.txt create mode 100644 tools/tracker/packages/portaudio/build/scons/SConscript_common create mode 100644 tools/tracker/packages/portaudio/build/scons/SConscript_opts create mode 100644 tools/tracker/packages/portaudio/config.guess create mode 100644 tools/tracker/packages/portaudio/config.sub create mode 100644 tools/tracker/packages/portaudio/configure create mode 100644 tools/tracker/packages/portaudio/configure.in create mode 100644 tools/tracker/packages/portaudio/depcomp create mode 100644 tools/tracker/packages/portaudio/doc/src/license.dox create mode 100644 tools/tracker/packages/portaudio/doc/src/mainpage.dox create mode 100644 tools/tracker/packages/portaudio/doc/src/srcguide.dox create mode 100644 tools/tracker/packages/portaudio/doc/utils/checkfiledocs.py create mode 100644 tools/tracker/packages/portaudio/fixdir.bat create mode 100644 tools/tracker/packages/portaudio/fixfile.bat create mode 100644 tools/tracker/packages/portaudio/include/pa_asio.h create mode 100644 tools/tracker/packages/portaudio/include/pa_jack.h create mode 100644 tools/tracker/packages/portaudio/include/pa_linux_alsa.h create mode 100644 tools/tracker/packages/portaudio/include/pa_mac_core.h create mode 100644 tools/tracker/packages/portaudio/include/pa_win_ds.h create mode 100644 tools/tracker/packages/portaudio/include/pa_win_waveformat.h create mode 100644 tools/tracker/packages/portaudio/include/pa_win_wmme.h create mode 100644 tools/tracker/packages/portaudio/include/portaudio.h create mode 100644 tools/tracker/packages/portaudio/index.html create mode 100644 tools/tracker/packages/portaudio/install-sh create mode 100644 tools/tracker/packages/portaudio/ltmain.sh create mode 100644 tools/tracker/packages/portaudio/missing create mode 100644 tools/tracker/packages/portaudio/pablio/README.txt create mode 100644 tools/tracker/packages/portaudio/pablio/pablio.c create mode 100644 tools/tracker/packages/portaudio/pablio/pablio.def create mode 100644 tools/tracker/packages/portaudio/pablio/pablio.h create mode 100644 tools/tracker/packages/portaudio/pablio/test_rw.c create mode 100644 tools/tracker/packages/portaudio/pablio/test_rw_echo.c create mode 100644 tools/tracker/packages/portaudio/pablio/test_w_saw.c create mode 100644 tools/tracker/packages/portaudio/pablio/test_w_saw8.c create mode 100644 tools/tracker/packages/portaudio/portaudio-2.0.pc.in create mode 100644 tools/tracker/packages/portaudio/portaudio_x86.def create mode 100644 tools/tracker/packages/portaudio/portaudio_x86.exp create mode 100644 tools/tracker/packages/portaudio/portaudio_x86.lib create mode 100644 tools/tracker/packages/portaudio/src/SConscript create mode 100644 tools/tracker/packages/portaudio/src/common/pa_allocation.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_allocation.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_converters.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_converters.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_cpuload.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_cpuload.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_debugprint.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_debugprint.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_dither.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_dither.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_endianness.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_front.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_hostapi.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_process.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_process.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_ringbuffer.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_ringbuffer.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_skeleton.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_stream.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_stream.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_trace.c create mode 100644 tools/tracker/packages/portaudio/src/common/pa_trace.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_types.h create mode 100644 tools/tracker/packages/portaudio/src/common/pa_util.h create mode 100644 tools/tracker/packages/portaudio/src/hostapi/alsa/pa_linux_alsa.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/asihpi/pa_linux_asihpi.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/asio/ASIO-README.txt create mode 100644 tools/tracker/packages/portaudio/src/hostapi/asio/Callback_adaptation_.pdf create mode 100644 tools/tracker/packages/portaudio/src/hostapi/asio/Pa_ASIO.pdf create mode 100644 tools/tracker/packages/portaudio/src/hostapi/asio/iasiothiscallresolver.cpp create mode 100644 tools/tracker/packages/portaudio/src/hostapi/asio/iasiothiscallresolver.h create mode 100644 tools/tracker/packages/portaudio/src/hostapi/asio/pa_asio.cpp create mode 100644 tools/tracker/packages/portaudio/src/hostapi/coreaudio/notes.txt create mode 100644 tools/tracker/packages/portaudio/src/hostapi/coreaudio/pa_mac_core.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.h create mode 100644 tools/tracker/packages/portaudio/src/hostapi/coreaudio/pa_mac_core_internal.h create mode 100644 tools/tracker/packages/portaudio/src/hostapi/coreaudio/pa_mac_core_old.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.h create mode 100644 tools/tracker/packages/portaudio/src/hostapi/dsound/pa_win_ds.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/dsound/pa_win_ds_dynlink.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/dsound/pa_win_ds_dynlink.h create mode 100644 tools/tracker/packages/portaudio/src/hostapi/jack/pa_jack.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/oss/low_latency_tip.txt create mode 100644 tools/tracker/packages/portaudio/src/hostapi/oss/pa_unix_oss.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/oss/recplay.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/wasapi/pa_win_wasapi.cpp create mode 100644 tools/tracker/packages/portaudio/src/hostapi/wdmks/pa_win_wdmks.c create mode 100644 tools/tracker/packages/portaudio/src/hostapi/wdmks/readme.txt create mode 100644 tools/tracker/packages/portaudio/src/hostapi/wmme/pa_win_wmme.c create mode 100644 tools/tracker/packages/portaudio/src/os/mac_osx/pa_mac_hostapis.c create mode 100644 tools/tracker/packages/portaudio/src/os/unix/pa_unix_hostapis.c create mode 100644 tools/tracker/packages/portaudio/src/os/unix/pa_unix_util.c create mode 100644 tools/tracker/packages/portaudio/src/os/unix/pa_unix_util.h create mode 100644 tools/tracker/packages/portaudio/src/os/win/pa_win_hostapis.c create mode 100644 tools/tracker/packages/portaudio/src/os/win/pa_win_util.c create mode 100644 tools/tracker/packages/portaudio/src/os/win/pa_win_waveformat.c create mode 100644 tools/tracker/packages/portaudio/src/os/win/pa_win_wdmks_utils.c create mode 100644 tools/tracker/packages/portaudio/src/os/win/pa_win_wdmks_utils.h create mode 100644 tools/tracker/packages/portaudio/src/os/win/pa_x86_plain_converters.c create mode 100644 tools/tracker/packages/portaudio/src/os/win/pa_x86_plain_converters.h create mode 100644 tools/tracker/packages/portaudio/test/README.txt create mode 100644 tools/tracker/packages/portaudio/test/debug_convert.c create mode 100644 tools/tracker/packages/portaudio/test/debug_dither_calc.c create mode 100644 tools/tracker/packages/portaudio/test/debug_dual.c create mode 100644 tools/tracker/packages/portaudio/test/debug_multi_in.c create mode 100644 tools/tracker/packages/portaudio/test/debug_multi_out.c create mode 100644 tools/tracker/packages/portaudio/test/debug_record.c create mode 100644 tools/tracker/packages/portaudio/test/debug_record_reuse.c create mode 100644 tools/tracker/packages/portaudio/test/debug_sine.c create mode 100644 tools/tracker/packages/portaudio/test/debug_sine_amp.c create mode 100644 tools/tracker/packages/portaudio/test/debug_sine_formats.c create mode 100644 tools/tracker/packages/portaudio/test/debug_srate.c create mode 100644 tools/tracker/packages/portaudio/test/debug_test1.c create mode 100644 tools/tracker/packages/portaudio/test/pa_devs.c create mode 100644 tools/tracker/packages/portaudio/test/pa_fuzz.c create mode 100644 tools/tracker/packages/portaudio/test/pa_minlat.c create mode 100644 tools/tracker/packages/portaudio/test/paqa_devs.c create mode 100644 tools/tracker/packages/portaudio/test/paqa_errs.c create mode 100644 tools/tracker/packages/portaudio/test/patest1.c create mode 100644 tools/tracker/packages/portaudio/test/patest_buffer.c create mode 100644 tools/tracker/packages/portaudio/test/patest_callbackstop.c create mode 100644 tools/tracker/packages/portaudio/test/patest_clip.c create mode 100644 tools/tracker/packages/portaudio/test/patest_dither.c create mode 100644 tools/tracker/packages/portaudio/test/patest_dsound_surround.c create mode 100644 tools/tracker/packages/portaudio/test/patest_hang.c create mode 100644 tools/tracker/packages/portaudio/test/patest_in_overflow.c create mode 100644 tools/tracker/packages/portaudio/test/patest_latency.c create mode 100644 tools/tracker/packages/portaudio/test/patest_leftright.c create mode 100644 tools/tracker/packages/portaudio/test/patest_longsine.c create mode 100644 tools/tracker/packages/portaudio/test/patest_many.c create mode 100644 tools/tracker/packages/portaudio/test/patest_maxsines.c create mode 100644 tools/tracker/packages/portaudio/test/patest_mono.c create mode 100644 tools/tracker/packages/portaudio/test/patest_mono_asio_channel_select.c create mode 100644 tools/tracker/packages/portaudio/test/patest_multi_sine.c create mode 100644 tools/tracker/packages/portaudio/test/patest_out_underflow.c create mode 100644 tools/tracker/packages/portaudio/test/patest_pink.c create mode 100644 tools/tracker/packages/portaudio/test/patest_prime.c create mode 100644 tools/tracker/packages/portaudio/test/patest_read_record.c create mode 100644 tools/tracker/packages/portaudio/test/patest_read_write_wire.c create mode 100644 tools/tracker/packages/portaudio/test/patest_record.c create mode 100644 tools/tracker/packages/portaudio/test/patest_ringmix.c create mode 100644 tools/tracker/packages/portaudio/test/patest_saw.c create mode 100644 tools/tracker/packages/portaudio/test/patest_sine.c create mode 100644 tools/tracker/packages/portaudio/test/patest_sine8.c create mode 100644 tools/tracker/packages/portaudio/test/patest_sine_channelmaps.c create mode 100644 tools/tracker/packages/portaudio/test/patest_sine_formats.c create mode 100644 tools/tracker/packages/portaudio/test/patest_sine_time.c create mode 100644 tools/tracker/packages/portaudio/test/patest_start_stop.c create mode 100644 tools/tracker/packages/portaudio/test/patest_stop.c create mode 100644 tools/tracker/packages/portaudio/test/patest_stop_playout.c create mode 100644 tools/tracker/packages/portaudio/test/patest_sync.c create mode 100644 tools/tracker/packages/portaudio/test/patest_timing.c create mode 100644 tools/tracker/packages/portaudio/test/patest_toomanysines.c create mode 100644 tools/tracker/packages/portaudio/test/patest_two_rates.c create mode 100644 tools/tracker/packages/portaudio/test/patest_underflow.c create mode 100644 tools/tracker/packages/portaudio/test/patest_wire.c create mode 100644 tools/tracker/packages/portaudio/test/patest_wmme_surround.c create mode 100644 tools/tracker/packages/portaudio/test/patest_write_sine.c create mode 100644 tools/tracker/packages/portaudio/test/patest_write_stop.c create mode 100644 tools/tracker/packages/portaudio/testcvs/changeme.txt create mode 100644 tools/tracker/plop.txt create mode 100644 tools/tracker/portaudio_x86.dll create mode 100644 tools/tracker/src/channel.cpp create mode 100644 tools/tracker/src/channel.h create mode 100644 tools/tracker/src/copy.h create mode 100644 tools/tracker/src/font.cpp create mode 100644 tools/tracker/src/font.h create mode 100644 tools/tracker/src/gui.cpp create mode 100644 tools/tracker/src/gui.h create mode 100644 tools/tracker/src/guibutton.cpp create mode 100644 tools/tracker/src/guibutton.h create mode 100644 tools/tracker/src/guichannel.cpp create mode 100644 tools/tracker/src/guichannel.h create mode 100644 tools/tracker/src/guiclock.cpp create mode 100644 tools/tracker/src/guiclock.h create mode 100644 tools/tracker/src/guielement.cpp create mode 100644 tools/tracker/src/guielement.h create mode 100644 tools/tracker/src/guievents.cpp create mode 100644 tools/tracker/src/guievents.h create mode 100644 tools/tracker/src/guimute.cpp create mode 100644 tools/tracker/src/guimute.h create mode 100644 tools/tracker/src/guiname.cpp create mode 100644 tools/tracker/src/guiname.h create mode 100644 tools/tracker/src/guioscilloscope.cpp create mode 100644 tools/tracker/src/guioscilloscope.h create mode 100644 tools/tracker/src/guispectrum.cpp create mode 100644 tools/tracker/src/guispectrum.h create mode 100644 tools/tracker/src/guistatusbar.cpp create mode 100644 tools/tracker/src/guistatusbar.h create mode 100644 tools/tracker/src/guitime.cpp create mode 100644 tools/tracker/src/guitime.h create mode 100644 tools/tracker/src/guivalue.cpp create mode 100644 tools/tracker/src/guivalue.h create mode 100644 tools/tracker/src/guivu.cpp create mode 100644 tools/tracker/src/guivu.h create mode 100644 tools/tracker/src/guiwaveout.cpp create mode 100644 tools/tracker/src/guiwaveout.h create mode 100644 tools/tracker/src/main.cpp create mode 100644 tools/tracker/src/midi.cpp create mode 100644 tools/tracker/src/midi.h create mode 100644 tools/tracker/src/palette.cpp create mode 100644 tools/tracker/src/palette.h create mode 100644 tools/tracker/src/psg.cpp create mode 100644 tools/tracker/src/psg.h create mode 100644 tools/tracker/src/synth.cpp create mode 100644 tools/tracker/src/synth.h create mode 100644 tools/tracker/src/tune.cpp create mode 100644 tools/tracker/src/tune.h create mode 100644 tools/tracker/stuff/NoteHelper/NoteHelper.vcproj create mode 100644 tools/tracker/stuff/header.py create mode 100644 tools/tracker/stuff/note create mode 100644 tools/tracker/stuff/note.cpp create mode 100644 tools/tracker/tracker.sln diff --git a/BitBoxWin32/BitBoxWin32.sln b/BitBoxWin32/BitBoxWin32.sln new file mode 100644 index 0000000..2ba74e5 --- /dev/null +++ b/BitBoxWin32/BitBoxWin32.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BitBoxWin32", "BitBoxWin32\BitBoxWin32.vcproj", "{AB70AF1C-0C19-41FC-A6A0-3B89E3EC7868}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AB70AF1C-0C19-41FC-A6A0-3B89E3EC7868}.Debug|Win32.ActiveCfg = Debug|Win32 + {AB70AF1C-0C19-41FC-A6A0-3B89E3EC7868}.Debug|Win32.Build.0 = Debug|Win32 + {AB70AF1C-0C19-41FC-A6A0-3B89E3EC7868}.Release|Win32.ActiveCfg = Release|Win32 + {AB70AF1C-0C19-41FC-A6A0-3B89E3EC7868}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/BitBoxWin32/BitBoxWin32/3D.h b/BitBoxWin32/BitBoxWin32/3D.h new file mode 100644 index 0000000..1a369d7 --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/3D.h @@ -0,0 +1,73 @@ +#ifndef _3D_H_ +#define _3D_H_ + +#include + +// Commands +#define CMTXMODE 0x10 +#define CMTXPUSH 0x11 +#define CMTXPOP 0x12 +#define CMTXIDENTITY 0x15 +#define CMTXLOAD4x4 0x16 +#define CMTXLOAD4x3 0x17 +#define CMTXMULT3x3 0x1A +#define CMTXSCALE 0x1B +#define CMTXTRANSLATE 0x1C +#define CCOLOR 0x20 +#define CNORMAL 0x21 +#define CVERTEX 0x24 +#define CPOLYATTR 0x29 +#define CDIFAMB 0x30 +#define CLIGHTVECTOR 0x32 +#define CLIGHTCOLOR 0x33 +#define CBEGIN 0x40 +#define CVIEWPORT 0x60 + +// Parameters +#define PROJECTION 0 +#define MODELVIEW 2 + +#define QUAD 1 + +#define NORMAL(x,y,z) (((x)&0x3FF)|(((y)&0x3FF)<<10)|(((z)&0x3FF)<<20)) +#define VERTEX(x,y,z) \ + (((x)&0x3FF)|(((y)&0x3FF)<<10)|(((z)&0x3FF)<<20)) + +#define DIFAMB(dif,amb) ((dif)|((amb)<<16)) + +#define VIEWPORT(x1,y1,x2,y2) ((x1)|((y1)<<8)|((x2)<<16)|((y2)<<24)) + +// Polygon attributes +#define LIGHT0 BIT(0) +#define POLYFRONT BIT(7) +#define POLYBACK BIT(6) +#define SOLID (31<<16) +#define ALPHA(a) ((a)<<16) +#define WIREFRAME (0<<16) + +// GX FIFO command packer +#define COMMAND(a,b,c,d) \ + (((a)&0xFF)|(((b)&0xFF)<<8)|(((c)&0xFF)<<16)|(((d)&0xFF)<<24)) + +void call_list(u32 * list, int size); + +#define push() MATRIX_PUSH = 0 +#define pop() MATRIX_POP = 1 +#define identity() MATRIX_IDENTITY = 0 +#define swap() GFX_FLUSH = 0 +#define translate(x, y, z) \ + MATRIX_TRANSLATE = x; \ + MATRIX_TRANSLATE = y; \ + MATRIX_TRANSLATE = z +#define scale(x, y, z) \ + MATRIX_SCALE = x; \ + MATRIX_SCALE = y; \ + MATRIX_SCALE = z + +void rotate(int angle, int v); + +#define rotateX(angle) rotate(angle, 1) +#define rotateY(angle) rotate(angle, 2) +#define rotateZ(angle) rotate(angle, 3) + +#endif // _3D_H_ diff --git a/BitBoxWin32/BitBoxWin32/BitBoxWin32.vcproj b/BitBoxWin32/BitBoxWin32/BitBoxWin32.vcproj new file mode 100644 index 0000000..fa1b81a --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/BitBoxWin32.vcproj @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BitBoxWin32/BitBoxWin32/channel.cpp b/BitBoxWin32/BitBoxWin32/channel.cpp new file mode 100644 index 0000000..9f16b0e --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/channel.cpp @@ -0,0 +1,36 @@ +#include "channel.h" + +Channel::Channel() +{ + reset(); +} + +void Channel::reset() +{ + duty = 0; + dec = 4; + for ( int i = 0 ; i < MAXROWS ; i++ ) { + notes[i].volume = 10; + notes[i].note = 60; + notes[i].active = false; + } + lastRow = 0; +} + +void Channel::setNote(int pos, int volume, int note) +{ + notes[pos].volume = volume; + notes[pos].note = note; + notes[pos].active = true; + + if ( pos > lastRow ) + lastRow = pos; +} + +void Channel::deleteNote(int pos) +{ + notes[pos].active = false; + if ( pos == lastRow ) + while ( lastRow > 0 && notes[lastRow].active == false ) + lastRow--; +} diff --git a/BitBoxWin32/BitBoxWin32/channel.h b/BitBoxWin32/BitBoxWin32/channel.h new file mode 100644 index 0000000..306036a --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/channel.h @@ -0,0 +1,28 @@ +#ifndef _CHANNEL_H_ +#define _CHANNEL_H_ + +#define MAXROWS 2048 + +struct Note { + int volume; + int note; // midi note number + bool active; +}; + +struct Channel { + int duty; + int dec; + Note notes[MAXROWS]; + + int lastRow; + + Channel(); + + void reset(); + + void setNote(int pos, int volume, int note); + void setNote(int pos, Note & note) { setNote(pos, note.volume, note.note); } + void deleteNote(int pos); +}; + +#endif // _CHANNEL_H_ diff --git a/BitBoxWin32/BitBoxWin32/glext.h b/BitBoxWin32/BitBoxWin32/glext.h new file mode 100644 index 0000000..680e865 --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/glext.h @@ -0,0 +1,8949 @@ +#ifndef __glext_h_ +#define __glext_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2007-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are 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 Materials. +** +** THE MATERIALS ARE 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Header file version number, required by OpenGL ABI for Linux */ +/* glext.h last updated $Date: 2009-07-11 18:45:24 -0700 (Sat, 11 Jul 2009) $ */ +/* Current version at http://www.opengl.org/registry/ */ +#define GL_GLEXT_VERSION 53 + +/* Function declaration macros - to move into glplatform.h */ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/*************************************************************/ + +#ifndef GL_VERSION_1_2 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#endif + +#ifndef GL_VERSION_1_2_DEPRECATED +#define GL_RESCALE_NORMAL 0x803A +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#endif + +#ifndef GL_ARB_imaging +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#endif + +#ifndef GL_ARB_imaging_DEPRECATED +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +#endif + +#ifndef GL_VERSION_1_3 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#endif + +#ifndef GL_VERSION_1_3_DEPRECATED +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_MULTISAMPLE_BIT 0x20000000 +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#endif + +#ifndef GL_VERSION_1_4 +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#endif + +#ifndef GL_VERSION_1_4_DEPRECATED +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_COMPARE_R_TO_TEXTURE 0x884E +#endif + +#ifndef GL_VERSION_1_5 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#endif + +#ifndef GL_VERSION_1_5_DEPRECATED +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC1_ALPHA 0x8589 +#define GL_SRC2_ALPHA 0x858A +#endif + +#ifndef GL_VERSION_2_0 +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#endif + +#ifndef GL_VERSION_2_0_DEPRECATED +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_TEXTURE_COORDS 0x8871 +#endif + +#ifndef GL_VERSION_2_1 +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#endif + +#ifndef GL_VERSION_2_1_DEPRECATED +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B +#endif + +#ifndef GL_VERSION_3_0 +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_DEPTH_BUFFER 0x8223 +#define GL_STENCIL_BUFFER 0x8224 +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +/* Reuse tokens from ARB_depth_buffer_float */ +/* reuse GL_DEPTH_COMPONENT32F */ +/* reuse GL_DEPTH32F_STENCIL8 */ +/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ +/* Reuse tokens from ARB_framebuffer_object */ +/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_DEFAULT */ +/* reuse GL_FRAMEBUFFER_UNDEFINED */ +/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ +/* reuse GL_INDEX */ +/* reuse GL_MAX_RENDERBUFFER_SIZE */ +/* reuse GL_DEPTH_STENCIL */ +/* reuse GL_UNSIGNED_INT_24_8 */ +/* reuse GL_DEPTH24_STENCIL8 */ +/* reuse GL_TEXTURE_STENCIL_SIZE */ +/* reuse GL_TEXTURE_RED_TYPE */ +/* reuse GL_TEXTURE_GREEN_TYPE */ +/* reuse GL_TEXTURE_BLUE_TYPE */ +/* reuse GL_TEXTURE_ALPHA_TYPE */ +/* reuse GL_TEXTURE_DEPTH_TYPE */ +/* reuse GL_UNSIGNED_NORMALIZED */ +/* reuse GL_FRAMEBUFFER_BINDING */ +/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_BINDING */ +/* reuse GL_READ_FRAMEBUFFER */ +/* reuse GL_DRAW_FRAMEBUFFER */ +/* reuse GL_READ_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_SAMPLES */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* reuse GL_FRAMEBUFFER_COMPLETE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ +/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ +/* reuse GL_MAX_COLOR_ATTACHMENTS */ +/* reuse GL_COLOR_ATTACHMENT0 */ +/* reuse GL_COLOR_ATTACHMENT1 */ +/* reuse GL_COLOR_ATTACHMENT2 */ +/* reuse GL_COLOR_ATTACHMENT3 */ +/* reuse GL_COLOR_ATTACHMENT4 */ +/* reuse GL_COLOR_ATTACHMENT5 */ +/* reuse GL_COLOR_ATTACHMENT6 */ +/* reuse GL_COLOR_ATTACHMENT7 */ +/* reuse GL_COLOR_ATTACHMENT8 */ +/* reuse GL_COLOR_ATTACHMENT9 */ +/* reuse GL_COLOR_ATTACHMENT10 */ +/* reuse GL_COLOR_ATTACHMENT11 */ +/* reuse GL_COLOR_ATTACHMENT12 */ +/* reuse GL_COLOR_ATTACHMENT13 */ +/* reuse GL_COLOR_ATTACHMENT14 */ +/* reuse GL_COLOR_ATTACHMENT15 */ +/* reuse GL_DEPTH_ATTACHMENT */ +/* reuse GL_STENCIL_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER */ +/* reuse GL_RENDERBUFFER */ +/* reuse GL_RENDERBUFFER_WIDTH */ +/* reuse GL_RENDERBUFFER_HEIGHT */ +/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ +/* reuse GL_STENCIL_INDEX1 */ +/* reuse GL_STENCIL_INDEX4 */ +/* reuse GL_STENCIL_INDEX8 */ +/* reuse GL_STENCIL_INDEX16 */ +/* reuse GL_RENDERBUFFER_RED_SIZE */ +/* reuse GL_RENDERBUFFER_GREEN_SIZE */ +/* reuse GL_RENDERBUFFER_BLUE_SIZE */ +/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ +/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ +/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ +/* reuse GL_MAX_SAMPLES */ +/* Reuse tokens from ARB_framebuffer_sRGB */ +/* reuse GL_FRAMEBUFFER_SRGB */ +/* Reuse tokens from ARB_half_float_vertex */ +/* reuse GL_HALF_FLOAT */ +/* Reuse tokens from ARB_map_buffer_range */ +/* reuse GL_MAP_READ_BIT */ +/* reuse GL_MAP_WRITE_BIT */ +/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ +/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ +/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ +/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ +/* Reuse tokens from ARB_texture_compression_rgtc */ +/* reuse GL_COMPRESSED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_RG_RGTC2 */ +/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ +/* Reuse tokens from ARB_texture_rg */ +/* reuse GL_RG */ +/* reuse GL_RG_INTEGER */ +/* reuse GL_R8 */ +/* reuse GL_R16 */ +/* reuse GL_RG8 */ +/* reuse GL_RG16 */ +/* reuse GL_R16F */ +/* reuse GL_R32F */ +/* reuse GL_RG16F */ +/* reuse GL_RG32F */ +/* reuse GL_R8I */ +/* reuse GL_R8UI */ +/* reuse GL_R16I */ +/* reuse GL_R16UI */ +/* reuse GL_R32I */ +/* reuse GL_R32UI */ +/* reuse GL_RG8I */ +/* reuse GL_RG8UI */ +/* reuse GL_RG16I */ +/* reuse GL_RG16UI */ +/* reuse GL_RG32I */ +/* reuse GL_RG32UI */ +/* Reuse tokens from ARB_vertex_array_object */ +/* reuse GL_VERTEX_ARRAY_BINDING */ +#endif + +#ifndef GL_VERSION_3_0_DEPRECATED +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_ALPHA_INTEGER 0x8D97 +/* Reuse tokens from ARB_framebuffer_object */ +/* reuse GL_TEXTURE_LUMINANCE_TYPE */ +/* reuse GL_TEXTURE_INTENSITY_TYPE */ +#endif + +#ifndef GL_VERSION_3_1 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +/* Reuse tokens from ARB_copy_buffer */ +/* reuse GL_COPY_READ_BUFFER */ +/* reuse GL_COPY_WRITE_BUFFER */ +/* Would reuse tokens from ARB_draw_instanced, but it has none */ +/* Reuse tokens from ARB_uniform_buffer_object */ +/* reuse GL_UNIFORM_BUFFER */ +/* reuse GL_UNIFORM_BUFFER_BINDING */ +/* reuse GL_UNIFORM_BUFFER_START */ +/* reuse GL_UNIFORM_BUFFER_SIZE */ +/* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */ +/* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ +/* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */ +/* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */ +/* reuse GL_MAX_UNIFORM_BLOCK_SIZE */ +/* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ +/* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ +/* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ +/* reuse GL_ACTIVE_UNIFORM_BLOCKS */ +/* reuse GL_UNIFORM_TYPE */ +/* reuse GL_UNIFORM_SIZE */ +/* reuse GL_UNIFORM_NAME_LENGTH */ +/* reuse GL_UNIFORM_BLOCK_INDEX */ +/* reuse GL_UNIFORM_OFFSET */ +/* reuse GL_UNIFORM_ARRAY_STRIDE */ +/* reuse GL_UNIFORM_MATRIX_STRIDE */ +/* reuse GL_UNIFORM_IS_ROW_MAJOR */ +/* reuse GL_UNIFORM_BLOCK_BINDING */ +/* reuse GL_UNIFORM_BLOCK_DATA_SIZE */ +/* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */ +/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ +/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ +/* reuse GL_INVALID_INDEX */ +#endif + +#ifndef GL_ARB_multitexture +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +#endif + +#ifndef GL_ARB_multisample +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +#endif + +#ifndef GL_ARB_texture_env_add +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif + +#ifndef GL_ARB_texture_compression +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif + +#ifndef GL_ARB_point_parameters +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#endif + +#ifndef GL_ARB_texture_env_crossbar +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#endif + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B +#endif + +#ifndef GL_ARB_shadow +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif + +#ifndef GL_ARB_window_pos +#endif + +#ifndef GL_ARB_vertex_program +#define GL_COLOR_SUM_ARB 0x8458 +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF +#endif + +#ifndef GL_ARB_fragment_program +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#ifndef GL_ARB_vertex_buffer_object +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA +#endif + +#ifndef GL_ARB_occlusion_query +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#define GL_SAMPLES_PASSED_ARB 0x8914 +#endif + +#ifndef GL_ARB_shader_objects +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +#endif + +#ifndef GL_ARB_vertex_shader +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A +#endif + +#ifndef GL_ARB_fragment_shader +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#endif + +#ifndef GL_ARB_shading_language_100 +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#endif + +#ifndef GL_ARB_texture_non_power_of_two +#endif + +#ifndef GL_ARB_point_sprite +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 +#endif + +#ifndef GL_ARB_fragment_program_shadow +#endif + +#ifndef GL_ARB_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 +#endif + +#ifndef GL_ARB_texture_rectangle +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#endif + +#ifndef GL_ARB_color_buffer_float +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D +#endif + +#ifndef GL_ARB_half_float_pixel +#define GL_HALF_FLOAT_ARB 0x140B +#endif + +#ifndef GL_ARB_texture_float +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#endif + +#ifndef GL_ARB_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#ifndef GL_ARB_draw_instanced +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#ifndef GL_ARB_framebuffer_object_DEPRECATED +#define GL_INDEX 0x8222 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#ifndef GL_ARB_geometry_shader4 +#define GL_LINES_ADJACENCY_ARB 0x000A +#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B +#define GL_TRIANGLES_ADJACENCY_ARB 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 +/* reuse GL_MAX_VARYING_COMPONENTS */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#ifndef GL_ARB_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#endif + +#ifndef GL_ARB_texture_buffer_object +#define GL_TEXTURE_BUFFER_ARB 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#ifndef GL_ARB_texture_rg +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFFu +#endif + +#ifndef GL_ARB_compatibility +/* ARB_compatibility just defines tokens from core 3.0 */ +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#endif + +#ifndef GL_ARB_shader_texture_lod +#endif + +#ifndef GL_EXT_abgr +#define GL_ABGR_EXT 0x8000 +#endif + +#ifndef GL_EXT_blend_color +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +#endif + +#ifndef GL_EXT_texture +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 +#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 +#endif + +#ifndef GL_EXT_texture3D +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_FILTER4_SGIS 0x8146 +#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 +#endif + +#ifndef GL_EXT_subtexture +#endif + +#ifndef GL_EXT_copy_texture +#endif + +#ifndef GL_EXT_histogram +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +#endif + +#ifndef GL_EXT_convolution +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +#endif + +#ifndef GL_SGI_color_matrix +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif + +#ifndef GL_SGI_color_table +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_PIXEL_TEXTURE_SGIS 0x8353 +#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 +#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 +#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_PIXEL_TEX_GEN_SGIX 0x8139 +#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B +#endif + +#ifndef GL_SGIS_texture4D +#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 +#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 +#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 +#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 +#define GL_TEXTURE_4D_SGIS 0x8134 +#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 +#define GL_TEXTURE_4DSIZE_SGIS 0x8136 +#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 +#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 +#define GL_TEXTURE_4D_BINDING_SGIS 0x814F +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD +#endif + +#ifndef GL_EXT_cmyka +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F +#endif + +#ifndef GL_EXT_texture_object +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 +#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 +#define GL_LINEAR_DETAIL_SGIS 0x8097 +#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 +#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 +#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A +#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B +#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_LINEAR_SHARPEN_SGIS 0x80AD +#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE +#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF +#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif + +#ifndef GL_SGIS_multisample +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB +#define GL_SAMPLE_PATTERN_SGIS 0x80AC +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif + +#ifndef GL_EXT_vertex_array +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +#endif + +#ifndef GL_EXT_misc_attribute +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif + +#ifndef GL_SGIX_clipmap +#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 +#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 +#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 +#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 +#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 +#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 +#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 +#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 +#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 +#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D +#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E +#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F +#endif + +#ifndef GL_SGIX_shadow +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif + +#ifndef GL_SGIS_texture_border_clamp +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif + +#ifndef GL_EXT_blend_logic_op +#endif + +#ifndef GL_SGIX_interlace +#define GL_INTERLACE_SGIX 0x8094 +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E +#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F +#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 +#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 +#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 +#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 +#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 +#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 +#endif + +#ifndef GL_SGIS_texture_select +#define GL_DUAL_ALPHA4_SGIS 0x8110 +#define GL_DUAL_ALPHA8_SGIS 0x8111 +#define GL_DUAL_ALPHA12_SGIS 0x8112 +#define GL_DUAL_ALPHA16_SGIS 0x8113 +#define GL_DUAL_LUMINANCE4_SGIS 0x8114 +#define GL_DUAL_LUMINANCE8_SGIS 0x8115 +#define GL_DUAL_LUMINANCE12_SGIS 0x8116 +#define GL_DUAL_LUMINANCE16_SGIS 0x8117 +#define GL_DUAL_INTENSITY4_SGIS 0x8118 +#define GL_DUAL_INTENSITY8_SGIS 0x8119 +#define GL_DUAL_INTENSITY12_SGIS 0x811A +#define GL_DUAL_INTENSITY16_SGIS 0x811B +#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C +#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D +#define GL_QUAD_ALPHA4_SGIS 0x811E +#define GL_QUAD_ALPHA8_SGIS 0x811F +#define GL_QUAD_LUMINANCE4_SGIS 0x8120 +#define GL_QUAD_LUMINANCE8_SGIS 0x8121 +#define GL_QUAD_INTENSITY4_SGIS 0x8122 +#define GL_QUAD_INTENSITY8_SGIS 0x8123 +#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 +#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 +#endif + +#ifndef GL_SGIX_sprite +#define GL_SPRITE_SGIX 0x8148 +#define GL_SPRITE_MODE_SGIX 0x8149 +#define GL_SPRITE_AXIS_SGIX 0x814A +#define GL_SPRITE_TRANSLATION_SGIX 0x814B +#define GL_SPRITE_AXIAL_SGIX 0x814C +#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D +#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E +#endif + +#ifndef GL_EXT_point_parameters +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 +#endif + +#ifndef GL_SGIS_point_parameters +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +#endif + +#ifndef GL_SGIX_instruments +#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 +#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C +#endif + +#ifndef GL_SGIX_framezoom +#define GL_FRAMEZOOM_SGIX 0x818B +#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C +#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#endif + +#ifndef GL_FfdMaskSGIX +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 +#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 +#define GL_DEFORMATIONS_MASK_SGIX 0x8196 +#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_REFERENCE_PLANE_SGIX 0x817D +#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E +#endif + +#ifndef GL_SGIX_flush_raster +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif + +#ifndef GL_SGIS_fog_function +#define GL_FOG_FUNC_SGIS 0x812A +#define GL_FOG_FUNC_POINTS_SGIS 0x812B +#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 +#endif + +#ifndef GL_HP_image_transform +#define GL_IMAGE_SCALE_X_HP 0x8155 +#define GL_IMAGE_SCALE_Y_HP 0x8156 +#define GL_IMAGE_TRANSLATE_X_HP 0x8157 +#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 +#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 +#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A +#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B +#define GL_IMAGE_MAG_FILTER_HP 0x815C +#define GL_IMAGE_MIN_FILTER_HP 0x815D +#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E +#define GL_CUBIC_HP 0x815F +#define GL_AVERAGE_HP 0x8160 +#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 +#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 +#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif + +#ifndef GL_INGR_palette_buffer +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE +#endif + +#ifndef GL_EXT_color_subtable +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_VERTEX_DATA_HINT_PGI 0x1A22A +#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B +#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C +#define GL_MAX_VERTEX_HINT_PGI 0x1A22D +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 +#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD +#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 +#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C +#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E +#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F +#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 +#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 +#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 +#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 +#define GL_CLIP_NEAR_HINT_PGI 0x1A220 +#define GL_CLIP_FAR_HINT_PGI 0x1A221 +#define GL_WIDE_LINE_HINT_PGI 0x1A222 +#define GL_BACK_NORMALS_HINT_PGI 0x1A223 +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif + +#ifndef GL_SGIX_list_priority +#define GL_LIST_PRIORITY_SGIX 0x8182 +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_IR_INSTRUMENT1_SGIX 0x817F +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E +#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F +#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SHADOW_AMBIENT_SGIX 0x80BF +#endif + +#ifndef GL_EXT_index_texture +#endif + +#ifndef GL_EXT_index_material +#define GL_INDEX_MATERIAL_EXT 0x81B8 +#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 +#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA +#endif + +#ifndef GL_EXT_index_func +#define GL_INDEX_TEST_EXT 0x81B5 +#define GL_INDEX_TEST_FUNC_EXT 0x81B6 +#define GL_INDEX_TEST_REF_EXT 0x81B7 +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_IUI_V2F_EXT 0x81AD +#define GL_IUI_V3F_EXT 0x81AE +#define GL_IUI_N3F_V2F_EXT 0x81AF +#define GL_IUI_N3F_V3F_EXT 0x81B0 +#define GL_T2F_IUI_V2F_EXT 0x81B1 +#define GL_T2F_IUI_V3F_EXT 0x81B2 +#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 +#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_YCRCB_422_SGIX 0x81BB +#define GL_YCRCB_444_SGIX 0x81BC +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 +#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 +#define GL_LIGHT_ENV_MODE_SGIX 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B +#define GL_FRAGMENT_LIGHT0_SGIX 0x840C +#define GL_FRAGMENT_LIGHT1_SGIX 0x840D +#define GL_FRAGMENT_LIGHT2_SGIX 0x840E +#define GL_FRAGMENT_LIGHT3_SGIX 0x840F +#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 +#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 +#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 +#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif + +#ifndef GL_HP_texture_lighting +#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 +#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 +#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +#endif + +#ifndef GL_WIN_phong_shading +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB +#endif + +#ifndef GL_WIN_specular_fog +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC +#endif + +#ifndef GL_EXT_light_texture +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 +#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 +/* reuse GL_FRAGMENT_DEPTH_EXT */ +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 +#endif + +#ifndef GL_SGIX_impact_pixel_texture +#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 +#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 +#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 +#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 +#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 +#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 +#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A +#endif + +#ifndef GL_EXT_bgra +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif + +#ifndef GL_SGIX_async +#define GL_ASYNC_MARKER_SGIX 0x8329 +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D +#endif + +#ifndef GL_INTEL_texture_scissor +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 +#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 +#endif + +#ifndef GL_HP_occlusion_test +#define GL_OCCLUSION_TEST_HP 0x8165 +#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 +#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif + +#ifndef GL_EXT_secondary_color +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF +#endif + +#ifndef GL_EXT_multi_draw_arrays +#endif + +#ifndef GL_EXT_fog_coord +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif + +#ifndef GL_SGIX_fog_scale +#define GL_FOG_SCALE_SGIX 0x81FC +#define GL_FOG_SCALE_VALUE_SGIX 0x81FD +#endif + +#ifndef GL_SUNX_constant_data +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 +#endif + +#ifndef GL_SUN_global_alpha +#define GL_GLOBAL_ALPHA_SUN 0x81D9 +#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA +#endif + +#ifndef GL_SUN_triangle_list +#define GL_RESTART_SUN 0x0001 +#define GL_REPLACE_MIDDLE_SUN 0x0002 +#define GL_REPLACE_OLDEST_SUN 0x0003 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA +#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB +#endif + +#ifndef GL_SUN_vertex +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB +#endif + +#ifndef GL_INGR_color_clamp +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INTERLACE_READ_INGR 0x8568 +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif + +#ifndef GL_EXT_422_pixels +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif + +#ifndef GL_EXT_texture_cube_map +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_WRAP_BORDER_SUN 0x81D4 +#endif + +#ifndef GL_EXT_texture_env_add +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW0_EXT GL_MODELVIEW +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F +#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +#endif + +#ifndef GL_NV_register_combiners +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +/* reuse GL_TEXTURE0_ARB */ +/* reuse GL_TEXTURE1_ARB */ +/* reuse GL_ZERO */ +/* reuse GL_NONE */ +/* reuse GL_FOG */ +#endif + +#ifndef GL_NV_fog_distance +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +/* reuse GL_EYE_PLANE */ +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F +#endif + +#ifndef GL_NV_blend_square +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B +#endif + +#ifndef GL_MESA_resize_buffers +#endif + +#ifndef GL_MESA_window_pos +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_CULL_VERTEX_IBM 103050 +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 +#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 +#endif + +#ifndef GL_SGIX_subsample +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 +#endif + +#ifndef GL_SGI_depth_pass_instrument +#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 +#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 +#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 +#endif + +#ifndef GL_3DFX_multisample +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 +#endif + +#ifndef GL_3DFX_tbuffer +#endif + +#ifndef GL_EXT_multisample +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#define GL_SAMPLE_PATTERN_EXT 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_CONVOLUTION_HINT_SGIX 0x8316 +#endif + +#ifndef GL_SGIX_resample +#define GL_PACK_RESAMPLE_SGIX 0x842C +#define GL_UNPACK_RESAMPLE_SGIX 0x842D +#define GL_RESAMPLE_REPLICATE_SGIX 0x842E +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF +#endif + +#ifndef GL_EXT_texture_env_dot3 +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +#ifndef GL_NV_fence +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +#endif + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_IBM 0x8370 +#endif + +#ifndef GL_NV_evaluators +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 +#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +#endif + +#ifndef GL_NV_texture_compression_vtc +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 +#endif + +#ifndef GL_NV_texture_shader +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV +#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV +#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif + +#ifndef GL_NV_vertex_program +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SCALEBIAS_HINT_SGIX 0x8322 +#endif + +#ifndef GL_OML_interlace +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 +#endif + +#ifndef GL_OML_subsample +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 +#endif + +#ifndef GL_OML_resample +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_FRAGMENT_SHADER_ATI 0x8920 +#define GL_REG_0_ATI 0x8921 +#define GL_REG_1_ATI 0x8922 +#define GL_REG_2_ATI 0x8923 +#define GL_REG_3_ATI 0x8924 +#define GL_REG_4_ATI 0x8925 +#define GL_REG_5_ATI 0x8926 +#define GL_REG_6_ATI 0x8927 +#define GL_REG_7_ATI 0x8928 +#define GL_REG_8_ATI 0x8929 +#define GL_REG_9_ATI 0x892A +#define GL_REG_10_ATI 0x892B +#define GL_REG_11_ATI 0x892C +#define GL_REG_12_ATI 0x892D +#define GL_REG_13_ATI 0x892E +#define GL_REG_14_ATI 0x892F +#define GL_REG_15_ATI 0x8930 +#define GL_REG_16_ATI 0x8931 +#define GL_REG_17_ATI 0x8932 +#define GL_REG_18_ATI 0x8933 +#define GL_REG_19_ATI 0x8934 +#define GL_REG_20_ATI 0x8935 +#define GL_REG_21_ATI 0x8936 +#define GL_REG_22_ATI 0x8937 +#define GL_REG_23_ATI 0x8938 +#define GL_REG_24_ATI 0x8939 +#define GL_REG_25_ATI 0x893A +#define GL_REG_26_ATI 0x893B +#define GL_REG_27_ATI 0x893C +#define GL_REG_28_ATI 0x893D +#define GL_REG_29_ATI 0x893E +#define GL_REG_30_ATI 0x893F +#define GL_REG_31_ATI 0x8940 +#define GL_CON_0_ATI 0x8941 +#define GL_CON_1_ATI 0x8942 +#define GL_CON_2_ATI 0x8943 +#define GL_CON_3_ATI 0x8944 +#define GL_CON_4_ATI 0x8945 +#define GL_CON_5_ATI 0x8946 +#define GL_CON_6_ATI 0x8947 +#define GL_CON_7_ATI 0x8948 +#define GL_CON_8_ATI 0x8949 +#define GL_CON_9_ATI 0x894A +#define GL_CON_10_ATI 0x894B +#define GL_CON_11_ATI 0x894C +#define GL_CON_12_ATI 0x894D +#define GL_CON_13_ATI 0x894E +#define GL_CON_14_ATI 0x894F +#define GL_CON_15_ATI 0x8950 +#define GL_CON_16_ATI 0x8951 +#define GL_CON_17_ATI 0x8952 +#define GL_CON_18_ATI 0x8953 +#define GL_CON_19_ATI 0x8954 +#define GL_CON_20_ATI 0x8955 +#define GL_CON_21_ATI 0x8956 +#define GL_CON_22_ATI 0x8957 +#define GL_CON_23_ATI 0x8958 +#define GL_CON_24_ATI 0x8959 +#define GL_CON_25_ATI 0x895A +#define GL_CON_26_ATI 0x895B +#define GL_CON_27_ATI 0x895C +#define GL_CON_28_ATI 0x895D +#define GL_CON_29_ATI 0x895E +#define GL_CON_30_ATI 0x895F +#define GL_CON_31_ATI 0x8960 +#define GL_MOV_ATI 0x8961 +#define GL_ADD_ATI 0x8963 +#define GL_MUL_ATI 0x8964 +#define GL_SUB_ATI 0x8965 +#define GL_DOT3_ATI 0x8966 +#define GL_DOT4_ATI 0x8967 +#define GL_MAD_ATI 0x8968 +#define GL_LERP_ATI 0x8969 +#define GL_CND_ATI 0x896A +#define GL_CND0_ATI 0x896B +#define GL_DOT2_ADD_ATI 0x896C +#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D +#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E +#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F +#define GL_NUM_PASSES_ATI 0x8970 +#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 +#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 +#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 +#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 +#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 +#define GL_SWIZZLE_STR_ATI 0x8976 +#define GL_SWIZZLE_STQ_ATI 0x8977 +#define GL_SWIZZLE_STR_DR_ATI 0x8978 +#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 +#define GL_SWIZZLE_STRQ_ATI 0x897A +#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B +#define GL_RED_BIT_ATI 0x00000001 +#define GL_GREEN_BIT_ATI 0x00000002 +#define GL_BLUE_BIT_ATI 0x00000004 +#define GL_2X_BIT_ATI 0x00000001 +#define GL_4X_BIT_ATI 0x00000002 +#define GL_8X_BIT_ATI 0x00000004 +#define GL_HALF_BIT_ATI 0x00000008 +#define GL_QUARTER_BIT_ATI 0x00000010 +#define GL_EIGHTH_BIT_ATI 0x00000020 +#define GL_SATURATE_BIT_ATI 0x00000040 +#define GL_COMP_BIT_ATI 0x00000002 +#define GL_NEGATE_BIT_ATI 0x00000004 +#define GL_BIAS_BIT_ATI 0x00000008 +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_STATIC_ATI 0x8760 +#define GL_DYNAMIC_ATI 0x8761 +#define GL_PRESERVE_ATI 0x8762 +#define GL_DISCARD_ATI 0x8763 +#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 +#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 +#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 +#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_VERTEX_SHADER_EXT 0x8780 +#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 +#define GL_OP_INDEX_EXT 0x8782 +#define GL_OP_NEGATE_EXT 0x8783 +#define GL_OP_DOT3_EXT 0x8784 +#define GL_OP_DOT4_EXT 0x8785 +#define GL_OP_MUL_EXT 0x8786 +#define GL_OP_ADD_EXT 0x8787 +#define GL_OP_MADD_EXT 0x8788 +#define GL_OP_FRAC_EXT 0x8789 +#define GL_OP_MAX_EXT 0x878A +#define GL_OP_MIN_EXT 0x878B +#define GL_OP_SET_GE_EXT 0x878C +#define GL_OP_SET_LT_EXT 0x878D +#define GL_OP_CLAMP_EXT 0x878E +#define GL_OP_FLOOR_EXT 0x878F +#define GL_OP_ROUND_EXT 0x8790 +#define GL_OP_EXP_BASE_2_EXT 0x8791 +#define GL_OP_LOG_BASE_2_EXT 0x8792 +#define GL_OP_POWER_EXT 0x8793 +#define GL_OP_RECIP_EXT 0x8794 +#define GL_OP_RECIP_SQRT_EXT 0x8795 +#define GL_OP_SUB_EXT 0x8796 +#define GL_OP_CROSS_PRODUCT_EXT 0x8797 +#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 +#define GL_OP_MOV_EXT 0x8799 +#define GL_OUTPUT_VERTEX_EXT 0x879A +#define GL_OUTPUT_COLOR0_EXT 0x879B +#define GL_OUTPUT_COLOR1_EXT 0x879C +#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D +#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E +#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F +#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 +#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 +#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 +#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 +#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 +#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 +#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 +#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 +#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 +#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 +#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA +#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB +#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC +#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD +#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE +#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF +#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 +#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 +#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 +#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 +#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 +#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 +#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 +#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 +#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 +#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 +#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA +#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB +#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC +#define GL_OUTPUT_FOG_EXT 0x87BD +#define GL_SCALAR_EXT 0x87BE +#define GL_VECTOR_EXT 0x87BF +#define GL_MATRIX_EXT 0x87C0 +#define GL_VARIANT_EXT 0x87C1 +#define GL_INVARIANT_EXT 0x87C2 +#define GL_LOCAL_CONSTANT_EXT 0x87C3 +#define GL_LOCAL_EXT 0x87C4 +#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 +#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 +#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 +#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 +#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE +#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF +#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 +#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 +#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 +#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 +#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 +#define GL_X_EXT 0x87D5 +#define GL_Y_EXT 0x87D6 +#define GL_Z_EXT 0x87D7 +#define GL_W_EXT 0x87D8 +#define GL_NEGATIVE_X_EXT 0x87D9 +#define GL_NEGATIVE_Y_EXT 0x87DA +#define GL_NEGATIVE_Z_EXT 0x87DB +#define GL_NEGATIVE_W_EXT 0x87DC +#define GL_ZERO_EXT 0x87DD +#define GL_ONE_EXT 0x87DE +#define GL_NEGATIVE_ONE_EXT 0x87DF +#define GL_NORMALIZED_RANGE_EXT 0x87E0 +#define GL_FULL_RANGE_EXT 0x87E1 +#define GL_CURRENT_VERTEX_EXT 0x87E2 +#define GL_MVP_MATRIX_EXT 0x87E3 +#define GL_VARIANT_VALUE_EXT 0x87E4 +#define GL_VARIANT_DATATYPE_EXT 0x87E5 +#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 +#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 +#define GL_VARIANT_ARRAY_EXT 0x87E8 +#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 +#define GL_INVARIANT_VALUE_EXT 0x87EA +#define GL_INVARIANT_DATATYPE_EXT 0x87EB +#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC +#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_STREAM0_ATI 0x876C +#define GL_VERTEX_STREAM1_ATI 0x876D +#define GL_VERTEX_STREAM2_ATI 0x876E +#define GL_VERTEX_STREAM3_ATI 0x876F +#define GL_VERTEX_STREAM4_ATI 0x8770 +#define GL_VERTEX_STREAM5_ATI 0x8771 +#define GL_VERTEX_STREAM6_ATI 0x8772 +#define GL_VERTEX_STREAM7_ATI 0x8773 +#define GL_VERTEX_SOURCE_ATI 0x8774 +#endif + +#ifndef GL_ATI_element_array +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A +#endif + +#ifndef GL_SUN_mesh_array +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SLICE_ACCUM_SUN 0x85CC +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif + +#ifndef GL_NV_depth_clamp +#define GL_DEPTH_CLAMP_NV 0x864F +#endif + +#ifndef GL_NV_occlusion_query +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 +#endif + +#ifndef GL_NV_point_sprite +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif + +#ifndef GL_NV_vertex_program1_1 +#endif + +#ifndef GL_EXT_shadow_funcs +#endif + +#ifndef GL_EXT_stencil_two_side +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 +#endif + +#ifndef GL_ATI_text_fragment_shader +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#ifndef GL_APPLE_element_array +#define GL_ELEMENT_ARRAY_APPLE 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A +#endif + +#ifndef GL_APPLE_fence +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B +#endif + +#ifndef GL_APPLE_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 +#endif + +#ifndef GL_APPLE_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#ifndef GL_APPLE_ycbcr_422 +#define GL_YCBCR_422_APPLE 0x85B9 +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#endif + +#ifndef GL_S3_s3tc +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 +#endif + +#ifndef GL_ATI_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 +#endif + +#ifndef GL_ATI_pixel_format_float +#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 +#endif + +#ifndef GL_ATI_texture_env_combine3 +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 +#endif + +#ifndef GL_ATI_texture_float +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif + +#ifndef GL_NV_float_buffer +#define GL_FLOAT_R_NV 0x8880 +#define GL_FLOAT_RG_NV 0x8881 +#define GL_FLOAT_RGB_NV 0x8882 +#define GL_FLOAT_RGBA_NV 0x8883 +#define GL_FLOAT_R16_NV 0x8884 +#define GL_FLOAT_R32_NV 0x8885 +#define GL_FLOAT_RG16_NV 0x8886 +#define GL_FLOAT_RG32_NV 0x8887 +#define GL_FLOAT_RGB16_NV 0x8888 +#define GL_FLOAT_RGB32_NV 0x8889 +#define GL_FLOAT_RGBA16_NV 0x888A +#define GL_FLOAT_RGBA32_NV 0x888B +#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C +#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D +#define GL_FLOAT_RGBA_MODE_NV 0x888E +#endif + +#ifndef GL_NV_fragment_program +#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 +#define GL_FRAGMENT_PROGRAM_NV 0x8870 +#define GL_MAX_TEXTURE_COORDS_NV 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 +#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 +#define GL_PROGRAM_ERROR_STRING_NV 0x8874 +#endif + +#ifndef GL_NV_half_float +#define GL_HALF_FLOAT_NV 0x140B +#endif + +#ifndef GL_NV_pixel_data_range +#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 +#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 +#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A +#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B +#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C +#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D +#endif + +#ifndef GL_NV_primitive_restart +#define GL_PRIMITIVE_RESTART_NV 0x8558 +#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 +#endif + +#ifndef GL_NV_texture_expand_normal +#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F +#endif + +#ifndef GL_NV_vertex_program2 +#endif + +#ifndef GL_ATI_map_object_buffer +#endif + +#ifndef GL_ATI_separate_stencil +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 +#endif + +#ifndef GL_ATI_vertex_attrib_array_object +#endif + +#ifndef GL_OES_read_format +#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#ifndef GL_EXT_blend_equation_separate +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D +#endif + +#ifndef GL_MESA_pack_invert +#define GL_PACK_INVERT_MESA 0x8758 +#endif + +#ifndef GL_MESA_ycbcr_texture +#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB +#define GL_YCBCR_MESA 0x8757 +#endif + +#ifndef GL_EXT_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF +#endif + +#ifndef GL_NV_fragment_program_option +#endif + +#ifndef GL_NV_fragment_program2 +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 +#endif + +#ifndef GL_NV_vertex_program2_option +/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ +/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ +#endif + +#ifndef GL_NV_vertex_program3 +/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ +#endif + +#ifndef GL_EXT_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +#endif + +#ifndef GL_GREMEDY_string_marker +#endif + +#ifndef GL_EXT_packed_depth_stencil +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 +#endif + +#ifndef GL_EXT_stencil_clear_tag +#define GL_STENCIL_TAG_BITS_EXT 0x88F2 +#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 +#endif + +#ifndef GL_EXT_texture_sRGB +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#ifndef GL_EXT_framebuffer_blit +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA +#endif + +#ifndef GL_EXT_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#endif + +#ifndef GL_MESAX_texture_stack +#define GL_TEXTURE_1D_STACK_MESAX 0x8759 +#define GL_TEXTURE_2D_STACK_MESAX 0x875A +#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B +#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C +#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D +#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E +#endif + +#ifndef GL_EXT_timer_query +#define GL_TIME_ELAPSED_EXT 0x88BF +#endif + +#ifndef GL_EXT_gpu_program_parameters +#endif + +#ifndef GL_APPLE_flush_buffer_range +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 +#endif + +#ifndef GL_NV_gpu_program4 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 +#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 +#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 +#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 +#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 +#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 +#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 +#endif + +#ifndef GL_NV_geometry_program4 +#define GL_LINES_ADJACENCY_EXT 0x000A +#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B +#define GL_TRIANGLES_ADJACENCY_EXT 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D +#define GL_GEOMETRY_PROGRAM_NV 0x8C26 +#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 +#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#endif + +#ifndef GL_EXT_geometry_shader4 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */ +/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */ +/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */ +/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */ +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +/* reuse GL_LINES_ADJACENCY_EXT */ +/* reuse GL_LINE_STRIP_ADJACENCY_EXT */ +/* reuse GL_TRIANGLES_ADJACENCY_EXT */ +/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +/* reuse GL_PROGRAM_POINT_SIZE_EXT */ +#endif + +#ifndef GL_NV_vertex_program4 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD +#endif + +#ifndef GL_EXT_gpu_shader4 +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#endif + +#ifndef GL_EXT_draw_instanced +#endif + +#ifndef GL_EXT_packed_float +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C +#endif + +#ifndef GL_EXT_texture_array +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +#endif + +#ifndef GL_EXT_texture_buffer_object +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E +#endif + +#ifndef GL_EXT_texture_compression_latc +#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 +#endif + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE +#endif + +#ifndef GL_EXT_texture_shared_exponent +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F +#endif + +#ifndef GL_NV_depth_buffer_float +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD +#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF +#endif + +#ifndef GL_NV_fragment_program4 +#endif + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB +#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 +#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 +#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 +#endif + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#endif + +#ifndef GL_NV_geometry_shader4 +#endif + +#ifndef GL_NV_parameter_buffer_object +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 +#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 +#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 +#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 +#endif + +#ifndef GL_EXT_draw_buffers2 +#endif + +#ifndef GL_NV_transform_feedback +#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 +#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 +#define GL_TEXTURE_COORD_NV 0x8C79 +#define GL_CLIP_DISTANCE_NV 0x8C7A +#define GL_VERTEX_ID_NV 0x8C7B +#define GL_PRIMITIVE_ID_NV 0x8C7C +#define GL_GENERIC_ATTRIB_NV 0x8C7D +#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 +#define GL_ACTIVE_VARYINGS_NV 0x8C81 +#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 +#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 +#define GL_PRIMITIVES_GENERATED_NV 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 +#define GL_RASTERIZER_DISCARD_NV 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C +#define GL_SEPARATE_ATTRIBS_NV 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F +#endif + +#ifndef GL_EXT_bindable_uniform +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +#endif + +#ifndef GL_EXT_texture_integer +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E +#endif + +#ifndef GL_GREMEDY_frame_terminator +#endif + +#ifndef GL_NV_conditional_render +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +#endif + +#ifndef GL_NV_present_video +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#define GL_PRESENT_TIME_NV 0x8E2A +#define GL_PRESENT_DURATION_NV 0x8E2B +#endif + +#ifndef GL_EXT_transform_feedback +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#endif + +#ifndef GL_EXT_direct_state_access +#define GL_PROGRAM_MATRIX_EXT 0x8E2D +#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E +#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F +#endif + +#ifndef GL_EXT_vertex_array_bgra +/* reuse GL_BGRA */ +#endif + +#ifndef GL_EXT_texture_swizzle +#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 +#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 +#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 +#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 +#endif + +#ifndef GL_NV_explicit_multisample +#define GL_SAMPLE_POSITION_NV 0x8E50 +#define GL_SAMPLE_MASK_NV 0x8E51 +#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 +#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 +#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 +#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 +#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 +#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 +#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 +#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 +#endif + +#ifndef GL_NV_transform_feedback2 +#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 +#endif + +#ifndef GL_ATI_meminfo +#define GL_VBO_FREE_MEMORY_ATI 0x87FB +#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC +#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD +#endif + +#ifndef GL_AMD_performance_monitor +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 +#endif + +#ifndef GL_AMD_texture_texture4 +#endif + +#ifndef GL_AMD_vertex_shader_tesselator +#define GL_SAMPLER_BUFFER_AMD 0x9001 +#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 +#define GL_TESSELLATION_MODE_AMD 0x9004 +#define GL_TESSELLATION_FACTOR_AMD 0x9005 +#define GL_DISCRETE_AMD 0x9006 +#define GL_CONTINUOUS_AMD 0x9007 +#endif + +#ifndef GL_EXT_provoking_vertex +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F +#endif + +#ifndef GL_EXT_texture_snorm +#define GL_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B +/* reuse GL_R_SNORM */ +/* reuse GL_RG_SNORM */ +/* reuse GL_RGB_SNORM */ +/* reuse GL_RGBA_SNORM */ +/* reuse GL_R8_SNORM */ +/* reuse GL_RG8_SNORM */ +/* reuse GL_RGB8_SNORM */ +/* reuse GL_RGBA8_SNORM */ +/* reuse GL_R16_SNORM */ +/* reuse GL_RG16_SNORM */ +/* reuse GL_RGB16_SNORM */ +/* reuse GL_RGBA16_SNORM */ +/* reuse GL_SIGNED_NORMALIZED */ +#endif + +#ifndef GL_AMD_draw_buffers_blend +#endif + +#ifndef GL_APPLE_texture_range +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +/* reuse GL_STORAGE_CACHED_APPLE */ +/* reuse GL_STORAGE_SHARED_APPLE */ +#endif + +#ifndef GL_APPLE_float_pixels +#define GL_HALF_APPLE 0x140B +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#define GL_COLOR_FLOAT_APPLE 0x8A0F +#endif + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 +#endif + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#endif + + +/*************************************************************/ + +#include +#ifndef GL_VERSION_2_0 +/* GL type for program/shader text */ +typedef char GLchar; +#endif + +#ifndef GL_VERSION_1_5 +/* GL types for handling large vertex buffer objects */ +typedef ptrdiff_t GLintptr; +typedef ptrdiff_t GLsizeiptr; +#endif + +#ifndef GL_ARB_vertex_buffer_object +/* GL types for handling large vertex buffer objects */ +typedef ptrdiff_t GLintptrARB; +typedef ptrdiff_t GLsizeiptrARB; +#endif + +#ifndef GL_ARB_shader_objects +/* GL types for program/shader text and shader object handles */ +typedef char GLcharARB; +typedef unsigned int GLhandleARB; +#endif + +/* GL type for "half" precision (s10e5) float data in host memory */ +#ifndef GL_ARB_half_float_pixel +typedef unsigned short GLhalfARB; +#endif + +#ifndef GL_NV_half_float +typedef unsigned short GLhalfNV; +#endif + +#ifndef GLEXT_64_TYPES_DEFINED +/* This code block is duplicated in glxext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GL_EXT_timer_query extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +/* Fallback if nothing above works */ +#include +#endif +#endif + +#ifndef GL_EXT_timer_query +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf); +GLAPI void APIENTRY glBlendEquation (GLenum); +GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_2_DEPRECATED +#define GL_VERSION_1_2_DEPRECATED 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei); +GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint); +GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean); +GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean); +GLAPI void APIENTRY glResetHistogram (GLenum); +GLAPI void APIENTRY glResetMinmax (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); +#endif + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum); +GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_VERSION_1_3_DEPRECATED +#define GL_VERSION_1_3_DEPRECATED 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClientActiveTexture (GLenum); +GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint); +GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort); +GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *); +GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *); +GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *); +GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *); +GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); +#endif + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); +GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *); +GLAPI void APIENTRY glPointParameteri (GLenum, GLint); +GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_VERSION_1_4_DEPRECATED +#define GL_VERSION_1_4_DEPRECATED 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogCoordf (GLfloat); +GLAPI void APIENTRY glFogCoordfv (const GLfloat *); +GLAPI void APIENTRY glFogCoordd (GLdouble); +GLAPI void APIENTRY glFogCoorddv (const GLdouble *); +GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *); +GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *); +GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *); +GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint); +GLAPI void APIENTRY glSecondaryColor3iv (const GLint *); +GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *); +GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *); +GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *); +GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort); +GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *); +GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dv (const GLdouble *); +GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fv (const GLfloat *); +GLAPI void APIENTRY glWindowPos2i (GLint, GLint); +GLAPI void APIENTRY glWindowPos2iv (const GLint *); +GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2sv (const GLshort *); +GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dv (const GLdouble *); +GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fv (const GLfloat *); +GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3iv (const GLint *); +GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3sv (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); +#endif + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsQuery (GLuint); +GLAPI void APIENTRY glBeginQuery (GLenum, GLuint); +GLAPI void APIENTRY glEndQuery (GLenum); +GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *); +GLAPI void APIENTRY glBindBuffer (GLenum, GLuint); +GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsBuffer (GLuint); +GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum); +GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *); +GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *); +GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum); +GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum); +GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparate (GLenum, GLenum); +GLAPI void APIENTRY glDrawBuffers (GLsizei, const GLenum *); +GLAPI void APIENTRY glStencilOpSeparate (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glStencilFuncSeparate (GLenum, GLenum, GLint, GLuint); +GLAPI void APIENTRY glStencilMaskSeparate (GLenum, GLuint); +GLAPI void APIENTRY glAttachShader (GLuint, GLuint); +GLAPI void APIENTRY glBindAttribLocation (GLuint, GLuint, const GLchar *); +GLAPI void APIENTRY glCompileShader (GLuint); +GLAPI GLuint APIENTRY glCreateProgram (void); +GLAPI GLuint APIENTRY glCreateShader (GLenum); +GLAPI void APIENTRY glDeleteProgram (GLuint); +GLAPI void APIENTRY glDeleteShader (GLuint); +GLAPI void APIENTRY glDetachShader (GLuint, GLuint); +GLAPI void APIENTRY glDisableVertexAttribArray (GLuint); +GLAPI void APIENTRY glEnableVertexAttribArray (GLuint); +GLAPI void APIENTRY glGetActiveAttrib (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetActiveUniform (GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetAttachedShaders (GLuint, GLsizei, GLsizei *, GLuint *); +GLAPI GLint APIENTRY glGetAttribLocation (GLuint, const GLchar *); +GLAPI void APIENTRY glGetProgramiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glGetShaderiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetShaderInfoLog (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glGetShaderSource (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI GLint APIENTRY glGetUniformLocation (GLuint, const GLchar *); +GLAPI void APIENTRY glGetUniformfv (GLuint, GLint, GLfloat *); +GLAPI void APIENTRY glGetUniformiv (GLuint, GLint, GLint *); +GLAPI void APIENTRY glGetVertexAttribdv (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfv (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgram (GLuint); +GLAPI GLboolean APIENTRY glIsShader (GLuint); +GLAPI void APIENTRY glLinkProgram (GLuint); +GLAPI void APIENTRY glShaderSource (GLuint, GLsizei, const GLchar* *, const GLint *); +GLAPI void APIENTRY glUseProgram (GLuint); +GLAPI void APIENTRY glUniform1f (GLint, GLfloat); +GLAPI void APIENTRY glUniform2f (GLint, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform3f (GLint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform4f (GLint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform1i (GLint, GLint); +GLAPI void APIENTRY glUniform2i (GLint, GLint, GLint); +GLAPI void APIENTRY glUniform3i (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform4i (GLint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform1fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform2fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform3fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform4fv (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform1iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform2iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform3iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform4iv (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniformMatrix2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glValidateProgram (GLuint); +GLAPI void APIENTRY glVertexAttrib1d (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1f (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1s (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2d (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2f (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2s (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3d (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3f (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3s (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4Niv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4Nub (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttrib4bv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4d (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dv (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4f (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fv (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4s (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4usv (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribPointer (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformMatrix2x3fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3x2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix2x4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4x2fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3x4fv (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4x3fv (GLint, GLsizei, GLboolean, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +/* OpenGL 3.0 also reuses entry points from these extensions: */ +/* ARB_framebuffer_object */ +/* ARB_map_buffer_range */ +/* ARB_vertex_array_object */ +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaski (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glGetBooleani_v (GLenum, GLuint, GLboolean *); +GLAPI void APIENTRY glGetIntegeri_v (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glEnablei (GLenum, GLuint); +GLAPI void APIENTRY glDisablei (GLenum, GLuint); +GLAPI GLboolean APIENTRY glIsEnabledi (GLenum, GLuint); +GLAPI void APIENTRY glBeginTransformFeedback (GLenum); +GLAPI void APIENTRY glEndTransformFeedback (void); +GLAPI void APIENTRY glBindBufferRange (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); +GLAPI void APIENTRY glBindBufferBase (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint, GLsizei, const GLchar* *, GLenum); +GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); +GLAPI void APIENTRY glClampColor (GLenum, GLenum); +GLAPI void APIENTRY glBeginConditionalRender (GLuint, GLenum); +GLAPI void APIENTRY glEndConditionalRender (void); +GLAPI void APIENTRY glVertexAttribIPointer (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetVertexAttribIiv (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint, GLenum, GLuint *); +GLAPI void APIENTRY glGetUniformuiv (GLuint, GLint, GLuint *); +GLAPI void APIENTRY glBindFragDataLocation (GLuint, GLuint, const GLchar *); +GLAPI GLint APIENTRY glGetFragDataLocation (GLuint, const GLchar *); +GLAPI void APIENTRY glUniform1ui (GLint, GLuint); +GLAPI void APIENTRY glUniform2ui (GLint, GLuint, GLuint); +GLAPI void APIENTRY glUniform3ui (GLint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform4ui (GLint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform1uiv (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform2uiv (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform3uiv (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform4uiv (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glTexParameterIiv (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTexParameterIuiv (GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetTexParameterIiv (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTexParameterIuiv (GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glClearBufferiv (GLenum, GLint, const GLint *); +GLAPI void APIENTRY glClearBufferuiv (GLenum, GLint, const GLuint *); +GLAPI void APIENTRY glClearBufferfv (GLenum, GLint, const GLfloat *); +GLAPI void APIENTRY glClearBufferfi (GLenum, GLint, GLfloat, GLint); +GLAPI const GLubyte * APIENTRY glGetStringi (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); +#endif + +#ifndef GL_VERSION_3_0_DEPRECATED +#define GL_VERSION_3_0_DEPRECATED 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribI1i (GLuint, GLint); +GLAPI void APIENTRY glVertexAttribI2i (GLuint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI3i (GLuint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI4i (GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI1ui (GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI2ui (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI3ui (GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI4ui (GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI1iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI2iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI3iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI4iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI1uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI2uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI3uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4bv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttribI4sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttribI4ubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribI4usv (GLuint, const GLushort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); +#endif + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +/* OpenGL 3.1 also reuses entry points from these extensions: */ +/* ARB_copy_buffer */ +/* ARB_uniform_buffer_object */ +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstanced (GLenum, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glDrawElementsInstanced (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); +GLAPI void APIENTRY glTexBuffer (GLenum, GLenum, GLuint); +GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); +#endif + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTextureARB (GLenum); +GLAPI void APIENTRY glClientActiveTextureARB (GLenum); +GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint); +GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort); +GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *); +GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); +#endif + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *); +GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *); +GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *); +GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +#endif + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); +#endif + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 +#endif + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 +#endif + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 +#endif + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *); +GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *); +GLAPI void APIENTRY glWeightivARB (GLint, const GLint *); +GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *); +GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *); +GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *); +GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *); +GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *); +GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexBlendARB (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); +typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); +typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); +typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); +typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); +typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); +typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); +#endif + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint); +GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *); +GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *); +GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *); +GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 +#endif + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 +#endif + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 +#endif + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 +#endif + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 +#endif + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 +#endif + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 +#endif + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *); +GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *); +GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint); +GLAPI void APIENTRY glWindowPos2ivARB (const GLint *); +GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2svARB (const GLshort *); +GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *); +GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *); +GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3ivARB (const GLint *); +GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3svARB (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); +#endif + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); +GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint); +GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint); +GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint); +GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *); +GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgramARB (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); +#endif + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 +/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ +#endif + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint); +GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsBufferARB (GLuint); +GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum); +GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *); +GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *); +GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum); +GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum); +GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueriesARB (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteQueriesARB (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsQueryARB (GLuint); +GLAPI void APIENTRY glBeginQueryARB (GLenum, GLuint); +GLAPI void APIENTRY glEndQueryARB (GLenum); +GLAPI void APIENTRY glGetQueryivARB (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectivARB (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB); +GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum); +GLAPI void APIENTRY glDetachObjectARB (GLhandleARB, GLhandleARB); +GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum); +GLAPI void APIENTRY glShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); +GLAPI void APIENTRY glCompileShaderARB (GLhandleARB); +GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); +GLAPI void APIENTRY glAttachObjectARB (GLhandleARB, GLhandleARB); +GLAPI void APIENTRY glLinkProgramARB (GLhandleARB); +GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB); +GLAPI void APIENTRY glValidateProgramARB (GLhandleARB); +GLAPI void APIENTRY glUniform1fARB (GLint, GLfloat); +GLAPI void APIENTRY glUniform2fARB (GLint, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform3fARB (GLint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glUniform1iARB (GLint, GLint); +GLAPI void APIENTRY glUniform2iARB (GLint, GLint, GLint); +GLAPI void APIENTRY glUniform3iARB (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform4iARB (GLint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glUniform1fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform2fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform3fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform4fvARB (GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glUniform1ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform2ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform3ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniform4ivARB (GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glUniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glUniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *); +GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB, GLenum, GLint *); +GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); +GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *); +GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB, const GLcharARB *); +GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); +GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB, GLint, GLfloat *); +GLAPI void APIENTRY glGetUniformivARB (GLhandleARB, GLint, GLint *); +GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); +typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); +typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); +typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); +typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *); +GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); +GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB, const GLcharARB *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +#endif + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 +#endif + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 +#endif + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 +#endif + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 +#endif + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 +#endif + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersARB (GLsizei, const GLenum *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 +#endif + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClampColorARB (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); +#endif + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 +#endif + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 +#endif + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint); +GLAPI void APIENTRY glBindRenderbuffer (GLenum, GLuint); +GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenRenderbuffers (GLsizei, GLuint *); +GLAPI void APIENTRY glRenderbufferStorage (GLenum, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum, GLenum, GLint *); +GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint); +GLAPI void APIENTRY glBindFramebuffer (GLenum, GLuint); +GLAPI void APIENTRY glDeleteFramebuffers (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFramebuffers (GLsizei, GLuint *); +GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum); +GLAPI void APIENTRY glFramebufferTexture1D (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture2D (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture3D (GLenum, GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGenerateMipmap (GLenum); +GLAPI void APIENTRY glBlitFramebuffer (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); +GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum, GLsizei, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glFramebufferTextureLayer (GLenum, GLenum, GLuint, GLint, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriARB (GLuint, GLenum, GLint); +GLAPI void APIENTRY glFramebufferTextureARB (GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum, GLenum, GLuint, GLint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum, GLintptr, GLsizeiptr, GLbitfield); +GLAPI void APIENTRY glFlushMappedBufferRange (GLenum, GLintptr, GLsizeiptr); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +#endif + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferARB (GLenum, GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindVertexArray (GLuint); +GLAPI void APIENTRY glDeleteVertexArrays (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenVertexArrays (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsVertexArray (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetUniformIndices (GLuint, GLsizei, const GLchar* *, GLuint *); +GLAPI void APIENTRY glGetActiveUniformsiv (GLuint, GLsizei, const GLuint *, GLenum, GLint *); +GLAPI void APIENTRY glGetActiveUniformName (GLuint, GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint, const GLchar *); +GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint, GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glUniformBlockBinding (GLuint, GLuint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif + +#ifndef GL_ARB_compatibility +#define GL_ARB_compatibility 1 +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyBufferSubData (GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif + +#ifndef GL_ARB_shader_texture_lod +#define GL_ARB_shader_texture_lod 1 +#endif + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 +#endif + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#endif + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); +#endif + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 +#endif + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); +typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#endif + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean); +GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean); +GLAPI void APIENTRY glResetHistogramEXT (GLenum); +GLAPI void APIENTRY glResetMinmaxEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); +#endif + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint); +GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +#endif + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 +#endif + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); +GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); +#endif + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenSGIX (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); +#endif + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint); +GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *); +GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat); +GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *); +GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *); +GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); +#endif + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 +#endif + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 +#endif + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *); +GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint); +GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#endif + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#endif + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 +#endif + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 +#endif + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean); +GLAPI void APIENTRY glSamplePatternSGIS (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); +#endif + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 +#endif + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glArrayElementEXT (GLint); +GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei); +GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *); +GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *); +GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); +typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); +typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 +#endif + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 +#endif + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 +#endif + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 +#endif + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 +#endif + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 +#endif + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 +#endif + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 +#endif + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 +#endif + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 +#endif + +#ifndef GL_SGIX_texture_select +#define GL_SGIX_texture_select 1 +#endif + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat); +GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *); +GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint); +GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 +#endif + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIS_point_parameters +#define GL_SGIS_point_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat); +GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_SGIX_instruments +#define GL_SGIX_instruments 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); +GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *); +GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *); +GLAPI void APIENTRY glReadInstrumentsSGIX (GLint); +GLAPI void APIENTRY glStartInstrumentsSGIX (void); +GLAPI void APIENTRY glStopInstrumentsSGIX (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); +typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); +typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); +typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); +#endif + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 +#endif + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameZoomSGIX (GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); +#endif + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTagSampleBufferSGIX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); +#endif + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); +GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); +GLAPI void APIENTRY glDeformSGIX (GLbitfield); +GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); +#endif + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); +#endif + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushRasterSGIX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); +#endif + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 +#endif + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *); +GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); +#endif + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 +#endif + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint); +GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 +#endif + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 +#endif + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#endif + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 +#endif + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glHintPGI (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); +#endif + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 +#endif + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat); +GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *); +GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint); +GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); +#endif + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 +#endif + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 +#endif + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 +#endif + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 +#endif + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 +#endif + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); +#endif + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); +#endif + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 +#endif + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei); +GLAPI void APIENTRY glUnlockArraysEXT (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); +#endif + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *); +GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); +#endif + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 +#endif + +#ifndef GL_SGIX_fragment_lighting +#define GL_SGIX_fragment_lighting 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum); +GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat); +GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint); +GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *); +GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); +#endif + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 +#endif + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 +#endif + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#endif + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 +#endif + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 +#endif + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glApplyTextureEXT (GLenum); +GLAPI void APIENTRY glTextureLightEXT (GLenum); +GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); +#endif + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 +#endif + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 +#endif + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint); +GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *); +GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *); +GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei); +GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei); +GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); +typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); +typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); +typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); +typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); +typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); +#endif + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 +#endif + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 +#endif + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *); +GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *); +GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *); +GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); +#endif + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 +#endif + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint); +GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +#endif + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 +#endif + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 +#endif + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 +#endif + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *); +GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *); +GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *); +GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *); +GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *); +GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *); +GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *); +GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort); +GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *); +GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureNormalEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogCoordfEXT (GLfloat); +GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *); +GLAPI void APIENTRY glFogCoorddEXT (GLdouble); +GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *); +GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 +#endif + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *); +GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *); +GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *); +GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glTangent3ivEXT (const GLint *); +GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glTangent3svEXT (const GLshort *); +GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *); +GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *); +GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *); +GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint); +GLAPI void APIENTRY glBinormal3ivEXT (const GLint *); +GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glBinormal3svEXT (const GLshort *); +GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); +typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); +typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); +typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); +typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); +typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); +typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); +typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); +typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); +typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); +typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 +#endif + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 +#endif + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 +#endif + +#ifndef GL_SGIX_fog_scale +#define GL_SGIX_fog_scale 1 +#endif + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFinishTextureSUNX (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); +#endif + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte); +GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort); +GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint); +GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat); +GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble); +GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte); +GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort); +GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); +#endif + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint); +GLAPI void APIENTRY glReplacementCodeusSUN (GLushort); +GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte); +GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *); +GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *); +GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *); +GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); +#endif + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#endif + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_INGR_blend_func_separate +#define GL_INGR_blend_func_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 +#endif + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 +#endif + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 +#endif + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 +#endif + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 +#endif + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 +#endif + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 +#endif + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexWeightfEXT (GLfloat); +GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *); +GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 +#endif + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); +GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); +#endif + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *); +GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat); +GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *); +GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint); +GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); +#endif + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 +#endif + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 +#endif + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 +#endif + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 +#endif + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glResizeBuffersMESA (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); +#endif + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint); +GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort); +GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *); +GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *); +GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *); +GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *); +GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *); +GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); +#endif + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 +#endif + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint); +GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* const *, GLsizei, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); +#endif + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint); +GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); +#endif + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 +#endif + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 +#endif + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 +#endif + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 +#endif + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 +#endif + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 +#endif + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTbufferMask3DFX (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); +#endif + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean); +GLAPI void APIENTRY glSamplePatternEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); +#endif + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 +#endif + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 +#endif + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 +#endif + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 +#endif + +#ifndef GL_SGIS_texture_color_mask +#define GL_SGIS_texture_color_mask 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#endif + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); +#endif + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +#endif + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsFenceNV (GLuint); +GLAPI GLboolean APIENTRY glTestFenceNV (GLuint); +GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glFinishFenceNV (GLuint); +GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#endif + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *); +GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *); +GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); +typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); +#endif + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 +#endif + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); +#endif + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 +#endif + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 +#endif + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 +#endif + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 +#endif + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 +#endif + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *); +GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint); +GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *); +GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *); +GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *); +GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *); +GLAPI GLboolean APIENTRY glIsProgramNV (GLuint); +GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *); +GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *); +GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *); +GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum); +GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble); +GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat); +GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort); +GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *); +GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *); +GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); +GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *); +GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *); +GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); +typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); +typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v); +typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); +#endif + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 +#endif + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 +#endif + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 +#endif + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 +#endif + +#ifndef GL_OML_resample +#define GL_OML_resample 1 +#endif + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 +#endif + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *); +GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *); +GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +#endif + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint); +GLAPI void APIENTRY glBindFragmentShaderATI (GLuint); +GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint); +GLAPI void APIENTRY glBeginFragmentShaderATI (void); +GLAPI void APIENTRY glEndFragmentShaderATI (void); +GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum); +GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum); +GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); +typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); +typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); +#endif + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint); +GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum); +GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint); +GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum); +GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glFreeObjectBufferATI (GLuint); +GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); +typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); +#endif + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginVertexShaderEXT (void); +GLAPI void APIENTRY glEndVertexShaderEXT (void); +GLAPI void APIENTRY glBindVertexShaderEXT (GLuint); +GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint); +GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint); +GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint); +GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *); +GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *); +GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *); +GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *); +GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *); +GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *); +GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *); +GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *); +GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *); +GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint); +GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint); +GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum); +GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum); +GLAPI GLuint APIENTRY glBindParameterEXT (GLenum); +GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum); +GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *); +GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *); +GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); +typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); +typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); +typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); +typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); +typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); +typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); +typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); +typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); +typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); +typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); +typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); +typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); +typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); +typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); +typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); +typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +#endif + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort); +GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint); +GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat); +GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble); +GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint); +GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte); +GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *); +GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort); +GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *); +GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint); +GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *); +GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *); +GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *); +GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum); +GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint); +GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +#endif + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *); +GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei); +GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); +#endif + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); +#endif + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 +#endif + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 +#endif + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 +#endif + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *); +GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint); +GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint); +GLAPI void APIENTRY glEndOcclusionQueryNV (void); +GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); +#endif + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint); +GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 +#endif + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 +#endif + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 +#endif + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); +#endif + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +#endif + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *); +GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei); +GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei); +GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei); +GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *); +GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *); +GLAPI void APIENTRY glSetFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint); +GLAPI void APIENTRY glFinishFenceAPPLE (GLuint); +GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint); +GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); +typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); +typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); +#endif + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint); +GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); +#endif + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *); +GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *); +GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); +#endif + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 +#endif + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 +#endif + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); +#endif + +#ifndef GL_ATI_pixel_format_float +#define GL_ATI_pixel_format_float 1 +/* This is really a WGL extension, but defines some associated GL enums. + * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. + */ +#endif + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 +#endif + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 +#endif + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 +#endif + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 +/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *); +GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *); +GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *); +GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); +#endif + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV); +GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *); +GLAPI void APIENTRY glFogCoordhNV (GLhalfNV); +GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *); +GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV); +GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); +GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *); +GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); +typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); +typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); +typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); +typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +#endif + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *); +GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer); +typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); +#endif + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPrimitiveRestartNV (void); +GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); +#endif + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 +#endif + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 +#endif + +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint); +GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); +#endif + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif + +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint); +GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); +#endif + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +#endif + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); +#endif + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 +#endif + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 +#endif + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 +#endif + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 +#endif + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 +#endif + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 +#endif + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 +#endif + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint); +GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *); +GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *); +GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint); +GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint); +GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *); +GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum); +GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGenerateMipmapEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); +#endif + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); +#endif + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 +#endif + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilClearTagEXT (GLsizei, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); +#endif + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 +#endif + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlitFramebufferEXT (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 +#endif + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint, GLenum, GLint64EXT *); +GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint, GLenum, GLuint64EXT *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); +#endif + +#ifndef GL_EXT_gpu_program_parameters +#define GL_EXT_gpu_program_parameters 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum, GLuint, GLsizei, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum, GLenum, GLint); +GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum, GLintptr, GLsizeiptr); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); +#endif + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum, GLuint, const GLint *); +GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum, GLuint, const GLuint *); +GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum, GLuint, const GLint *); +GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum, GLuint, const GLuint *); +GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *); +GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum, GLuint, GLuint *); +GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum, GLuint, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +#endif + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramVertexLimitNV (GLenum, GLint); +GLAPI void APIENTRY glFramebufferTextureEXT (GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum, GLenum, GLuint, GLint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriEXT (GLuint, GLenum, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +#endif + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint, GLint); +GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint, const GLushort *); +GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint, GLenum, GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); +#endif + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetUniformuivEXT (GLuint, GLint, GLuint *); +GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint, GLuint, const GLchar *); +GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint, const GLchar *); +GLAPI void APIENTRY glUniform1uiEXT (GLint, GLuint); +GLAPI void APIENTRY glUniform2uiEXT (GLint, GLuint, GLuint); +GLAPI void APIENTRY glUniform3uiEXT (GLint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform4uiEXT (GLint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glUniform1uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform2uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform3uivEXT (GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glUniform4uivEXT (GLint, GLsizei, const GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +#endif + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 +#endif + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 +#endif + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferEXT (GLenum, GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#endif + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 +#endif + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 +#endif + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 +#endif + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthRangedNV (GLdouble, GLdouble); +GLAPI void APIENTRY glClearDepthdNV (GLdouble); +GLAPI void APIENTRY glDepthBoundsdNV (GLdouble, GLdouble); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); +typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); +#endif + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 +#endif + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 +#endif + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 +#endif + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum, GLuint, GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum, GLuint, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum, GLuint, GLuint, GLsizei, const GLuint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); +#endif + +#ifndef GL_EXT_draw_buffers2 +#define GL_EXT_draw_buffers2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum, GLuint, GLboolean *); +GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum, GLuint, GLint *); +GLAPI void APIENTRY glEnableIndexedEXT (GLenum, GLuint); +GLAPI void APIENTRY glDisableIndexedEXT (GLenum, GLuint); +GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); +#endif + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum); +GLAPI void APIENTRY glEndTransformFeedbackNV (void); +GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint, const GLint *, GLenum); +GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); +GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr); +GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum); +GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *); +GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *); +GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); +GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint, GLuint, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); +#endif + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformBufferEXT (GLuint, GLint, GLuint); +GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint, GLint); +GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint, GLint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); +typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); +typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); +#endif + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexParameterIivEXT (GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTexParameterIuivEXT (GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glClearColorIiEXT (GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glClearColorIuiEXT (GLuint, GLuint, GLuint, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +#endif + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); +#endif + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint, GLenum); +GLAPI void APIENTRY glEndConditionalRenderNV (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); +#endif + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint, GLuint64EXT, GLuint, GLuint, GLenum, GLenum, GLuint, GLuint, GLenum, GLuint, GLuint); +GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint, GLuint64EXT, GLuint, GLuint, GLenum, GLenum, GLuint, GLenum, GLuint, GLenum, GLuint, GLenum, GLuint); +GLAPI void APIENTRY glGetVideoivNV (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetVideouivNV (GLuint, GLenum, GLuint *); +GLAPI void APIENTRY glGetVideoi64vNV (GLuint, GLenum, GLint64EXT *); +GLAPI void APIENTRY glGetVideoui64vNV (GLuint, GLenum, GLuint64EXT *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); +typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params); +#endif + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum); +GLAPI void APIENTRY glEndTransformFeedbackEXT (void); +GLAPI void APIENTRY glBindBufferRangeEXT (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); +GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum, GLuint, GLuint, GLintptr); +GLAPI void APIENTRY glBindBufferBaseEXT (GLenum, GLuint, GLuint); +GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint, GLsizei, const GLchar* *, GLenum); +GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#endif + +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield); +GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield); +GLAPI void APIENTRY glMatrixLoadfEXT (GLenum, const GLfloat *); +GLAPI void APIENTRY glMatrixLoaddEXT (GLenum, const GLdouble *); +GLAPI void APIENTRY glMatrixMultfEXT (GLenum, const GLfloat *); +GLAPI void APIENTRY glMatrixMultdEXT (GLenum, const GLdouble *); +GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum); +GLAPI void APIENTRY glMatrixRotatefEXT (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMatrixRotatedEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixScalefEXT (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMatrixScaledEXT (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixFrustumEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixOrthoEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glMatrixPopEXT (GLenum); +GLAPI void APIENTRY glMatrixPushEXT (GLenum); +GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum, const GLfloat *); +GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum, const GLdouble *); +GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum, const GLfloat *); +GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum, const GLdouble *); +GLAPI void APIENTRY glTextureParameterfEXT (GLuint, GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glTextureParameterfvEXT (GLuint, GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glTextureParameteriEXT (GLuint, GLenum, GLenum, GLint); +GLAPI void APIENTRY glTextureParameterivEXT (GLuint, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetTextureImageEXT (GLuint, GLenum, GLint, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint, GLenum, GLint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint, GLenum, GLint, GLenum, GLint *); +GLAPI void APIENTRY glTextureImage3DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum, GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum, GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum, GLenum, GLenum, GLint); +GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei); +GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum, GLenum, GLint, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum, GLenum, GLint, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum, GLenum, GLint, GLenum, GLint *); +GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +GLAPI void APIENTRY glBindMultiTextureEXT (GLenum, GLenum, GLuint); +GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum, GLuint); +GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum, GLuint); +GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum, GLint, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum, GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum, GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexEnviEXT (GLenum, GLenum, GLenum, GLint); +GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexGendEXT (GLenum, GLenum, GLenum, GLdouble); +GLAPI void APIENTRY glMultiTexGendvEXT (GLenum, GLenum, GLenum, const GLdouble *); +GLAPI void APIENTRY glMultiTexGenfEXT (GLenum, GLenum, GLenum, GLfloat); +GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum, GLenum, GLenum, const GLfloat *); +GLAPI void APIENTRY glMultiTexGeniEXT (GLenum, GLenum, GLenum, GLint); +GLAPI void APIENTRY glMultiTexGenivEXT (GLenum, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum, GLenum, GLenum, GLdouble *); +GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum, GLenum, GLenum, GLfloat *); +GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum, GLuint, GLvoid* *); +GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint, GLenum, GLint, GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum, GLenum, GLint, GLvoid *); +GLAPI void APIENTRY glNamedProgramStringEXT (GLuint, GLenum, GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint, GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); +GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint, GLenum, GLuint, const GLdouble *); +GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint, GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint, GLenum, GLuint, const GLfloat *); +GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint, GLenum, GLuint, GLdouble *); +GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint, GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint, GLenum, GLenum, GLvoid *); +GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint, GLenum, GLuint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint, GLenum, GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint, GLenum, GLuint, const GLint *); +GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint, GLenum, GLuint, GLsizei, const GLint *); +GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint, GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint, GLenum, GLuint, const GLuint *); +GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint, GLenum, GLuint, GLsizei, const GLuint *); +GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint, GLenum, GLuint, GLint *); +GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint, GLenum, GLuint, GLuint *); +GLAPI void APIENTRY glTextureParameterIivEXT (GLuint, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint, GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint, GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum, GLenum, GLenum, const GLint *); +GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum, GLenum, GLenum, const GLuint *); +GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum, GLenum, GLenum, GLuint *); +GLAPI void APIENTRY glProgramUniform1fEXT (GLuint, GLint, GLfloat); +GLAPI void APIENTRY glProgramUniform2fEXT (GLuint, GLint, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramUniform3fEXT (GLuint, GLint, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramUniform4fEXT (GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat); +GLAPI void APIENTRY glProgramUniform1iEXT (GLuint, GLint, GLint); +GLAPI void APIENTRY glProgramUniform2iEXT (GLuint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramUniform3iEXT (GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramUniform4iEXT (GLuint, GLint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint, GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint, GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint, GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint, GLint, GLsizei, const GLfloat *); +GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint, GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint, GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint, GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint, GLint, GLsizei, const GLint *); +GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint, GLint, GLsizei, GLboolean, const GLfloat *); +GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint, GLint, GLuint); +GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint, GLint, GLuint, GLuint); +GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint, GLint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint, GLint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint, GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint, GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint, GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint, GLint, GLsizei, const GLuint *); +GLAPI void APIENTRY glNamedBufferDataEXT (GLuint, GLsizeiptr, const GLvoid *, GLenum); +GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint, GLintptr, GLsizeiptr, const GLvoid *); +GLAPI GLvoid* APIENTRY glMapNamedBufferEXT (GLuint, GLenum); +GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint); +GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint, GLenum, GLvoid* *); +GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint, GLintptr, GLsizeiptr, GLvoid *); +GLAPI void APIENTRY glTextureBufferEXT (GLuint, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glMultiTexBufferEXT (GLenum, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint, GLenum, GLint *); +GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint, GLenum); +GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint, GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint, GLenum, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint, GLenum, GLenum, GLuint); +GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint, GLenum, GLenum, GLint *); +GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint, GLenum); +GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum, GLenum); +GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint, GLenum); +GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint, GLsizei, const GLenum *); +GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint, GLenum); +GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint, GLenum, GLint *); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint, GLsizei, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint, GLsizei, GLsizei, GLenum, GLsizei, GLsizei); +GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint, GLenum, GLuint, GLint); +GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint, GLenum, GLuint, GLint, GLint); +GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint, GLenum, GLuint, GLint, GLenum); +GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint, GLenum, GLuint); +GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum, GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); +typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); +typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid* *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, GLvoid *img); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, GLvoid *img); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, GLvoid *string); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, GLvoid* *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); +typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); +typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); +#endif + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 +#endif + +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 +#endif + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetMultisamplefvNV (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint, GLbitfield); +GLAPI void APIENTRY glTexRenderbufferNV (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); +typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); +#endif + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum, GLuint); +GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei, const GLuint *); +GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei, GLuint *); +GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint); +GLAPI void APIENTRY glPauseTransformFeedbackNV (void); +GLAPI void APIENTRY glResumeTransformFeedbackNV (void); +GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum, GLuint); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); +#endif + +#ifndef GL_ATI_meminfo +#define GL_ATI_meminfo 1 +#endif + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *, GLsizei, GLuint *); +GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint, GLint *, GLint *, GLsizei, GLuint *); +GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint, GLuint, GLsizei, GLsizei *, GLchar *); +GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint, GLuint, GLenum, void *); +GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei, GLuint *); +GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei, GLuint *); +GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint, GLboolean, GLuint, GLint, GLuint *); +GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint); +GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint); +GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint, GLenum, GLsizei, GLuint *, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); +typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif + +#ifndef GL_AMD_texture_texture4 +#define GL_AMD_texture_texture4 1 +#endif + +#ifndef GL_AMD_vertex_shader_tesselator +#define GL_AMD_vertex_shader_tesselator 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTessellationFactorAMD (GLfloat); +GLAPI void APIENTRY glTessellationModeAMD (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); +typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_provoking_vertex +#define GL_EXT_provoking_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProvokingVertexEXT (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); +#endif + +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 +#endif + +#ifndef GL_AMD_draw_buffers_blend +#define GL_AMD_draw_buffers_blend 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint, GLenum, GLenum); +GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint, GLenum); +GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +#endif + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureRangeAPPLE (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum, GLenum, GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels 1 +#endif + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint, GLenum); +GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint, GLenum); +GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint, GLenum); +GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); +GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); +GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); +GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#endif + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum, GLuint, GLenum); +GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum, GLuint, GLenum); +GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum, GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 +#endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/BitBoxWin32/BitBoxWin32/main.cpp b/BitBoxWin32/BitBoxWin32/main.cpp new file mode 100644 index 0000000..919f46e --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/main.cpp @@ -0,0 +1,692 @@ +#include +#include +#include +#include "trig.h" +#include "glext.h" + +#include "tune.h" +#include "synth.h" + +#ifdef _WINDOWS +#include +#endif + +#define WIDTH 800 +#define HEIGHT 600 + +Uint32 timer(Uint32 interval, void * param) +{ + Synth * synth = (Synth *) param; + + static int lastRow = -42; + int currentRow = synth->getCurrentRow(); + if ( currentRow != lastRow ) { + lastRow = currentRow; + } + + // Detect end of song and stop synth + int end = 0; + for ( int i = 0 ; i < 8 ; i++ ) + if ( currentRow > synth->getTune()->channels[i].lastRow + && synth->getVolume(i) == 0 ) + end++; + else + break; + if ( end == 8 ) + synth->stop(false); + + return interval; +} + +PFNGLCREATESHADERPROC glCreateShader = 0; +PFNGLCREATEPROGRAMPROC glCreateProgram = 0; +PFNGLLINKPROGRAMPROC glLinkProgram = 0; +PFNGLUSEPROGRAMPROC glUseProgram = 0; +PFNGLDETACHSHADERPROC glDetachShader = 0; +PFNGLATTACHSHADERPROC glAttachShader = 0; +PFNGLDELETEPROGRAMPROC glDeleteProgram = 0; +PFNGLDELETESHADERPROC glDeleteShader = 0; +PFNGLSHADERSOURCEPROC glShaderSource = 0; +PFNGLCOMPILESHADERPROC glCompileShader = 0; +GLuint fsh; +const GLchar* fshSource = "void main()\ +{\ + ivec3 i = ivec3(gl_Color * 63.0);\ + gl_FragColor = vec4(ivec3(vec3(i/63.0) * 31.0) / 31.0, 1.0);\ +}"; +GLuint program; + +void InitVideo() +{ + glClearColor(0, 0, 0, 1.0f); + glClearDepth(1.0f); + + glEnable(GL_DEPTH_TEST); + glDepthMask(GL_TRUE); + + //glEnable(GL_POLYGON_SMOOTH); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + + glEnable(GL_CULL_FACE); + glPolygonMode(GL_FRONT, GL_FILL); + glCullFace(GL_BACK); + + glMatrixMode(GL_PROJECTION); + float matrix[4*4] = + { + 6587/4096.0f, 0, 0, 0, + 0, 8783/4096.0f, 0, 0, + 0, 0, -4116/4096.0f, -4096/4096.0f, + 0, 0, -821/4096.0f, 0, + }; + glLoadMatrixf(matrix); + glMatrixMode(GL_MODELVIEW); + + glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); + glEnable(GL_COLOR_MATERIAL); + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + static float diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f }; + glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); + static float position[] = { 2.0f, 4.0f, 2.0f }; + glLightfv(GL_LIGHT0, GL_POSITION, position); + + glCreateShader = (PFNGLCREATESHADERPROC) wglGetProcAddress("glCreateShader"); + glCreateProgram = (PFNGLCREATEPROGRAMPROC) wglGetProcAddress("glCreateProgram"); + glLinkProgram = (PFNGLLINKPROGRAMPROC) wglGetProcAddress("glLinkProgram"); + glUseProgram = (PFNGLUSEPROGRAMPROC) wglGetProcAddress("glUseProgram"); + glDetachShader = (PFNGLDETACHSHADERPROC) wglGetProcAddress("glDetachShader"); + glAttachShader = (PFNGLATTACHSHADERPROC) wglGetProcAddress("glAttachShader"); + glDeleteProgram = (PFNGLDELETEPROGRAMPROC) wglGetProcAddress("glDeleteProgram"); + glDeleteShader = (PFNGLDELETESHADERPROC) wglGetProcAddress("glDeleteShader"); + glShaderSource = (PFNGLSHADERSOURCEPROC) wglGetProcAddress("glShaderSource"); + glCompileShader = (PFNGLCOMPILESHADERPROC) wglGetProcAddress("glCompileShader"); + + fsh = glCreateShader(GL_FRAGMENT_SHADER); + glShaderSource(fsh, 1, & fshSource, 0); + glCompileShader(fsh); + program = glCreateProgram(); + glAttachShader(program, fsh); + glLinkProgram(program); +} + +int fade_current = 31 << 2; // starts white +int fade_target = 16 << 2; + +void cube() +{ + glUseProgram(program); + + glDisable(GL_BLEND); + glColor3f(0.5f, 0.5f, 0.5f); + glBegin(GL_QUADS); + glNormal3f(0.0f, 0.0f, 1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + + glNormal3f(0.0f, 0.0f, -1.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + + glNormal3f(0.0f, -1.0f, 0.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + + glNormal3f(0.0f, 1.0f, 0.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + + glNormal3f(-1.0f, 0.0f, 0.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + + glNormal3f(1.0f, 0.0f, 0.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glEnd(); + + glUseProgram(0); +} + +#define RGB15(r, g, b) ((r)|((g)<<5)|((b)<<10)) +#define RED(rgb) ( rgb & 0x1F ) +#define GREEN(rgb) ((rgb>>5)&0x1F) +#define BLUE(rgb) ((rgb>>10)&0x1F) + +#define identity glLoadIdentity +#define push glPushMatrix +#define pop glPopMatrix +#define translate(x, y, z) glTranslatef((x) / 4096.0f, (y) / 4096.0f, (z) / 4096.0f) +#define scale(x, y, z) glScalef((x) / 4096.0f, (y) / 4096.0f, (z) / 4096.0f) + +#define rotateX(a) rotate(a, 0) +#define rotateY(a) rotate(a, 1) +#define rotateZ(a) rotate(a, 2) + +void rotate(int a, int v) +{ + float angle = a / 12867.0f * 180.0f; + + if ( v == 1 ) + glRotatef(angle, 0, 1, 0); + else if ( v == 2 ) + glRotatef(angle, 0, 0, 1); + else + glRotatef(angle, 1, 0, 0); +} + +int uber_sin(int x) +{ + int ax; + x = 4096 - (x & 0x1FFF); + ax = x; + if ( ax < 0 ) + ax = -ax; + return 4 * x - ((4 * x * ax) >> 12); +} + +void arms(int t, int m) +{ + push(); +// translate(0.24f*m, 0.4f, 0); + translate(983*m, 1638, 0); +// rotateZ(30°*m); + rotateZ(2145*m); +// rotateX(cos(t)*20°+180°); + rotateX(((cos(t)*1430)>>12)+12868); +// translate(0, 0.3, 0); + translate(0, 1229, 0); + push(); +// scale(0.1, 0.3, 0.1); + scale(410, 1229, 410); + cube(); + pop(); + +// translate(0, 0.22, 0); + translate(0, 901, 0); +// rotateY(abs(cos(t))*16*m); + int act = cos(t)*1144; + if ( act < 0 ) + act = -act; + rotateY((act>>12)*m); +// rotateX(100°); + rotateX(7149); +// rotateZ(165°*m); + rotateZ(11796*m); +// translate(0, 0.21, 0); + translate(0, 860, 0); + push(); +// scale(0.09, 0.27, 0.09); + scale(369, 1106, 369); + cube(); + pop(); + pop(); +} + +void legs(int t, int m) +{ + push(); + translate(778*m, 0, -61); + rotateX(((cos(t)*929)>>12)-228); // 929->1024 = -12 bytes ! + + translate(0, -2867, 0); + push(); + scale(410, 1024, 410); + cube(); + pop(); + + int d = -cos(t+6434); + if ( d < 0 ) + d = 0; + translate(0, ((d*512)>>12)-2130, ((d*61)>>12)-246); + rotateX(715); + push(); + scale(410, 1229, 410); + cube(); + pop(); + + translate(0, -1229, 410); + push(); + scale(410, 123, 819); + cube(); + pop(); + pop(); +} + +void robot(int t, int T) +{ +#define robot_fall_speed 2048 +#define robot_start 40 + t *= 402; + + // ast = |sin(t)| + int ast = sin(t); + if ( ast < 0 ) + ast = -ast; + + // act = |cos(t)| + int act = cos(t); + if ( act < 0 ) + act = -act; + + int fall; + + // head + push(); +// translate(0, 0.71+0.05*abs(sin(t)), 0.04); + fall = (robot_start+88)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, 2908+((ast*204)>>12)+fall, 164); +// rotateX(-5°+10°*abs(cos(t))); + rotateX((-357+715*act)>>12); +// scale(0.2, 0.2, 0.2); + scale(819, 819, 819); + cube(); + pop(); + + // body + push(); +// translate(0, 0.05*abs(sin(t)), 0); + fall = (robot_start+48)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, ((ast*204)>>12)+fall, 0); +// rotateY(2.5°-5°*cos(t)); + rotateY(179-((357*cos(t))>>12)); +// scale(0.3, 0.5, 0.17); + scale(1229, 2048, 696); + cube(); + pop(); + + // left side + push(); + fall = (robot_start+56)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, fall, 0); + arms(t, -1); + pop(); + + push(); + fall = (robot_start+8)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, fall, 0); + legs(t, -1); + pop(); + + // right side + t += 12868; + push(); + fall = (robot_start+64)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, fall, 0); + arms(t, 1); + pop(); + + push(); + fall = (robot_start+24)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, fall, 0); + legs(t, 1); + pop(); +} + +// r * cos((x*pi/2)/r) * cos((y*pi/2)/r) - r +// returns a fixed point altitude value in fx.6 +int f(int x, int y) +{ + const int r = 32; +// const int _r = (int)((0.5f/(float)r)*64.0f); // == 1 ... +// x = (x*_r); +// y = (y*_r); + return ((r * (uber_cos(x) * uber_cos(y))>>18)) - (r<<6); +} + +void sonic(int t) +{ + int i = 0; + int y, x; + + rotateX(-1024); + + if ( t < 256 ) + t = 0; + else + t = -(t*2)&127; + + glBegin(GL_QUADS); + for ( y = -7*64+t ; y < 6*64+t ; y += 64 ) { + for ( x = -7*64 ; x < 6*64 ; x += 64 ) { + if ( i & 1 ) + glColor3f(29/31.0f, 15/31.0f, 4/31.0f); + else + glColor3f(4/31.0f, 11/31.0f, 28/31.0f); + glVertex3f(x / 64.0f, f(x, y)/64.0f, y / 64.0f); + glVertex3f(x / 64.0f, f(x, y+64)/64.0f, y / 64.0f + 1.0f); + glVertex3f(x / 64.0f + 1.0f, f(x+64, y+64)/64.0f, y / 64.0f + 1.0f); + glVertex3f(x / 64.0f + 1.0f, f(x+64, y)/64.0f, y / 64.0f); + i++; + } + } + glEnd(); +} + +void spot(int c1, int c2, int w, int h) +{ + float c1r = RED(c1)/31.0f, c1g = GREEN(c1)/31.0f, c1b = BLUE(c1)/31.0f; + float c2r = RED(c2)/31.0f, c2g = GREEN(c2)/31.0f, c2b = BLUE(c2)/31.0f; + glBegin(GL_QUADS); + glColor3f(c1r, c1g, c1b); + glVertex3f(-1.0f, h/64.0f, 0.0f); + glVertex3f(1.0f, h/64.0f, 0.0f); + glColor3f(c2r, c2g, c2b); + glVertex3f(1.0f + w / 64.0f, 1.0f, 0.0f); + glVertex3f(-1.0f-w/64.0f, 1.0f, 0.0f); + glEnd(); +} + +void robot_solo(int t) +{ + int T = t; + + if ( t < 256 ) { + // stopped for the intro + t = 0; + } else if ( t > 1152 ) { + // tracted by the flying saucer + int y; + y = (t-1152)*58; + if ( y > 22528 ) + y = 22528; + translate(0, y, 0); + y = (8*4096-y)/8; + scale(y, y, y); + t = 0; + } + + robot(t, T); +} + +int jump(int t) +{ + if ( t < 512 ) + return 0; + t = t%64; + t = t*8-384+128; + t = 3072-t*t; + if ( t < 0 ) + return 0; + return t; +} + +void robot_clone_wars(int t) +{ +#define SPACE_FLOOR 1 +#define FINAL_WALK_ON 1 +#define LINES 6 +#define SPACING 16384 + int i, j; + + //rotateX(2560); + if ( (t & 1) == 0 ) { // different camera for different screens + translate(5120, 44032, 20480); + rotateZ(1792); + } else { + rotateX(2560); + } + + push(); + translate(0, -6144, -4096*4); + rotateX(-12867/2); + scale(4096*16, 4096*10, 4096*10); + spot(RGB15(0, 7, 3), RGB15(0, 2, 1), 0, -64); + pop(); + + int z = t*256-16384; + if ( z > 0 ) + z = 0; + + int lines = (t-192+8)/8; + + if ( lines < 2 ) + lines = 2; + else if ( lines > LINES ) + lines = LINES; + + for ( i = 1 ; i < lines ; i++ ) { + translate(0, 0, -8192); + for ( j = 0 ; j < i ; j++ ) { + if ( j == 2 && i == 5 ) + continue; + push(); + translate(j * SPACING - ((i-1)*SPACING)/2, jump(t-i*4)+z, 0); + if ( t < 512 ) + robot(8, 256); + else + robot(8+t-512, 256); + pop(); + } + } +} + +void background(int t) +{ + glDisable(GL_BLEND); + if ( t == 1536 ) { + fade_current = 0; + fade_target = 16<<2; + } + if ( t < 1536 ) + spot(RGB15(31, 31, 31), RGB15(12, 12, 31), 0, -64); + else + spot(RGB15(1, 5, 2), RGB15(0, 0, 0), 0, -64); +} + +void fs(int t) +{ + static int h[9] = { 64, 58, 51, 32, 26, 19, 10, 1, 0 }; + static int r[9] = { 0, 819, 1229, 1638, 3276, 4096, 3276, 2048, 0 }; + + int y = 1024*32-t*32; + if ( y < 0 ) + y = 0; + translate(y, y, -y); + + glDisable(GL_BLEND); + glDisable(GL_CULL_FACE); + int i, j; + glBegin(GL_QUADS); + glColor3f(0.5f, 0.5f, 0.5f); + for ( i = 0 ; i < 8 ; i++ ) { + for ( j = 0 ; j < 8192 ; j += 512 ) { + glNormal3f(((uber_cos(j) * r[i])>>18) / 64.0f, h[i]/64.0f, ((uber_sin(j) * r[i])>>18)/64.0f); + glVertex3f(((uber_cos(j) * r[i])>>18) / 64.0f, h[i]/64.0f, ((uber_sin(j) * r[i])>>18)/64.0f); + glVertex3f(((uber_cos(j+512) * r[i])>>18) / 64.0f, h[i]/64.0f, ((uber_sin(j+512) * r[i])>>18)/64.0f); + glVertex3f(((uber_cos(j+512) * r[i+1])>>18) / 64.0f, h[i+1]/64.0f, ((uber_sin(j+512) * r[i+1])>>18)/64.0f); + glVertex3f(((uber_cos(j) * r[i+1])>>18) / 64.0f, h[i+1]/64.0f, ((uber_sin(j) * r[i+1])>>18)/64.0f); + } + } + glEnd(); + glEnable(GL_CULL_FACE); +} + +void fs_beam(int t) +{ + int h = 64+8+384-t*4; + if ( h < 0 ) + h = 0; + //GFX_POLY_FORMAT = LIGHT0|POLYFRONT|ALPHA(15); + glEnable(GL_BLEND); + spot(RGB15(0, 31, 4), RGB15(0, 31, 4), -32, h-384); +} + +typedef short s16; +typedef char s8; + +typedef struct { + void (*draw)(int time); + s16 start, end; + s8 ty, tz; + s8 s; +} Drawable; + +Drawable demo[] = +{ + // draw start, end ty, tz scale + { robot_solo, 0, 1536, 1, -15, 4 }, + { sonic, 0, 1536, -8, -24, 4 }, + { fs, 0, 1536, 21, -15, 4 }, + { robot_clone_wars, 1536, 2576, -4, -16, 2 }, + { background, 0, 2576, 9, -44, 32 }, + { fs_beam, 1024, 1536, 18, -13, 4 }, +}; + +int mouseX, mouseY; + +void Render(int t) +{ + if ( t < 2576 ) { + if ( fade_current < fade_target ) + fade_current++; + else if ( fade_current > fade_target ) + fade_current--; + + //int v = 0; + //if ( fade_current < (16 << 2) ) + // v = DARK | (16 - (fade_current >> 2)); + //else if ( fade_current > (16 << 2) ) + // v = BRIGHT | ((fade_current >> 2) - 16); + + //REG_MASTER_BRIGHT = v; + //REG_MASTER_BRIGHT_SUB = v; + + identity(); + + // Dual screen 3D + if ( t&1 ) { + glViewport(WIDTH/2 - 256/2, HEIGHT/2 - 384/2 - 96/2, 255, 191); + } else { + translate(0, -5*4096, 0); + glViewport(WIDTH/2 - 256/2, HEIGHT/2 - 384/2 + 192 - 96/2 + 96, 255, 191); + } + + // Lightweight 3D player -olol + int i; + for ( i = 0 ; i < sizeof(demo)/sizeof(Drawable) ; i++ ) { + if ( t >= demo[i].start && t < demo[i].end ) { + push(); + translate(0, demo[i].ty*1024, demo[i].tz*1024); + scale(demo[i].s*1024, demo[i].s*1024, demo[i].s*1024); + demo[i].draw(t-demo[i].start); + pop(); + } + } + } +} + +int main(int argc, char ** argv) +{ + SDL_Event event; + bool running = true; + + int t = 0; + +#ifdef _WINDOWS +#ifdef _DEBUG + AllocConsole(); +// freopen("CONOUT$", "wb", stderr); +// freopen("CONOUT$", "wb", stdout); +#endif +#endif + + SDL_Init(SDL_INIT_EVERYTHING); + + Tune * tune = new Tune(); + Synth * synth = new Synth(tune); + if ( ! SDL_AddTimer(100, timer, synth) ) + return 42; + + SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); + SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5); + SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5); + SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5); + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + //SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 1); + //SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 2); + SDL_Surface * screen = SDL_SetVideoMode(WIDTH, HEIGHT, 16, SDL_DOUBLEBUF|SDL_HWSURFACE|SDL_OPENGL); + SDL_WM_SetCaption("BitBox - Winport", "BitBox - Winport"); + InitVideo(); + + synth->play(); + tune->Load("plop"); + + Uint32 start = SDL_GetTicks(); + + while ( running ) { + while ( SDL_PollEvent(& event) ) + { + switch ( event.type ) { + case SDL_MOUSEMOTION: + mouseX = event.motion.x; + mouseY = event.motion.y; + break; + case SDL_QUIT: + running = false; + break; + case SDL_VIDEORESIZE: + case SDL_VIDEOEXPOSE: + break; + case SDL_KEYDOWN: + if ( event.key.keysym.sym == SDLK_ESCAPE ) // Quit... + running = false; + break; + default: + break; + } + } + + Uint32 now = SDL_GetTicks(); + + t = (now - start) / 16; + + glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT); + + Render(t); + Render(t+1); + + SDL_GL_SwapBuffers(); + } + + delete synth; + delete tune; + + SDL_FreeSurface(screen); + SDL_Quit(); + +#ifdef __WIN32__ +#ifdef _DEBUG + FreeConsole(); +#endif +#endif + + return 0; +} diff --git a/BitBoxWin32/BitBoxWin32/midi.cpp b/BitBoxWin32/BitBoxWin32/midi.cpp new file mode 100644 index 0000000..47438ce --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/midi.cpp @@ -0,0 +1,42 @@ +#include "midi.h" +#include "math.h" +#include + +#ifdef _WINDOWS +int round(float f) +{ + return (int) (f + 0.5f); +} +#endif + +int midiNoteToFrequency(int note) +{ + return (int) (440.0f * pow(2.0f, (note - 69)/12.0f)); +} + +int midiFrequencyToNote(int freq) +{ + return round(69.0f + log(freq/440.0f)*17.31234f); +} + +char * midiNoteName(int note) +{ + static char str[4]; + + int l = note % 12; + + str[0] = "CCDDEFFGGAAB"[l]; + + if ( l == 1 || l == 3 || l == 6 || l == 8 || l == 10 ) + str[1] = '#'; + else + str[1] = ' '; + + int octave = (note - 12) / 12; + if ( note < 12 ) + str[2] = '-'; + else + str[2] = '0' + octave; + + return str; +} diff --git a/BitBoxWin32/BitBoxWin32/midi.h b/BitBoxWin32/BitBoxWin32/midi.h new file mode 100644 index 0000000..56dd0da --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/midi.h @@ -0,0 +1,8 @@ +#ifndef _MIDI_H_ +#define _MIDI_H_ + +int midiFrequencyToNote(int freq); +int midiNoteToFrequency(int note); +char * midiNoteName(int note); + +#endif // _MIDI_H_ diff --git a/BitBoxWin32/BitBoxWin32/options.h b/BitBoxWin32/BitBoxWin32/options.h new file mode 100644 index 0000000..0eeb9de --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/options.h @@ -0,0 +1,8 @@ +#ifndef _OPTIONS_H_ +#define _OPTIONS_H_ + +#define STDLIB 0 +#define CAMERA 0 +#define SAFE 0 + +#endif // _OPTIONS_H_ diff --git a/BitBoxWin32/BitBoxWin32/psg.cpp b/BitBoxWin32/BitBoxWin32/psg.cpp new file mode 100644 index 0000000..590c7da --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/psg.cpp @@ -0,0 +1,76 @@ +#include "psg.h" + +PSG::PSG() + : sample(0), t(0.0f), volume(0), frequency(0), duty(0) +{ +} + +signed short PSG::compute(float time) +{ + t += time; + + if ( t >= 1.0f/(float)frequency ) { + sample = generate() * volume / 127; + t -= 1.0f/(float)frequency; + } + + return sample; +} + +void PSG::reset() +{ + t = 0.0f; + sample = 0; +} + +// NDS PSG Noise +// X=X SHR 1, IF carry THEN Out=LOW, X=X XOR 6000h ELSE Out=HIGH +signed short Noise::generate() +{ + int carry; + + carry = x & 1; + x >>= 1; + + if ( carry ) { + x = x ^ 0x6000; + return -0x7FFF; + } else { + return 0x7FFF; + } +} + +void Noise::reset() +{ + x = 0x7FFF; + PSG::reset(); +} + +// NDS Wave Duty +// Each duty cycle consists of eight HIGH or LOW samples, so the sound +// frequency is 1/8th of the selected sample rate. The duty cycle always +// starts at the begin of the LOW period when the sound gets (re-)started. +// +// 0 12.5% "_______-_______-_______-" +// 1 25.0% "______--______--______--" +// 2 37.5% "_____---_____---_____---" +// 3 50.0% "____----____----____----" +// 4 62.5% "___-----___-----___-----" +// 5 75.0% "__------__------__------" +// 6 87.5% "_-------_-------_-------" +// 7 0.0% "________________________" +signed short WaveDuty::generate() +{ + x = (x+1)%8; + + if ( x <= duty ) + return -0x7FFF; + else + return 0x7FFF; +} + +void WaveDuty::reset() +{ + x = 0; + PSG::reset(); +} diff --git a/BitBoxWin32/BitBoxWin32/psg.h b/BitBoxWin32/BitBoxWin32/psg.h new file mode 100644 index 0000000..41ea08c --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/psg.h @@ -0,0 +1,47 @@ +#ifndef _PSG_H_ +#define _PSG_H_ + +class PSG { + signed short sample; + float t; + + int volume; + int frequency; + +protected: + int x; + int duty; + + virtual signed short generate() = 0; + +public: + PSG(); + + void setDuty(int d) { duty = d; } + void setVolume(int v) { volume = v; } + void setFrequency(int f) { frequency = f; t = 0.0f; sample = 0; } + + virtual void reset(); + + signed short compute(float time); + + signed short getSample() const { return sample; } +}; + +class Noise : public PSG { + signed short generate(); + void reset(); + +public: + Noise() { reset(); } +}; + +class WaveDuty : public PSG { + signed short generate(); + void reset(); + +public: + WaveDuty() { reset(); } +}; + +#endif // _PSG_H_ diff --git a/BitBoxWin32/BitBoxWin32/synth.cpp b/BitBoxWin32/BitBoxWin32/synth.cpp new file mode 100644 index 0000000..262da3a --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/synth.cpp @@ -0,0 +1,292 @@ +#include "synth.h" + +#include +#include +#include + +#include "midi.h" + +int SynthStreamCallback(const void * in, void * out, unsigned long frames, + const PaStreamCallbackTimeInfo * timeInfo, PaStreamCallbackFlags status, + void * user) +{ + Synth * synth = (Synth *) user; + synth->synth((signed short *) out, frames); + return 0; +} + +Synth::Synth(Tune * tune) + : stream(0), tune(tune), dRes(0.0f), dRow(0.0f), + row(0), initialRow(0), latency(0.0), analyseBufferPosition(0) +{ + // Initialize PortAudio + PaError code; + + code = Pa_Initialize(); + if ( code != paNoError ) + printf("PortAudio error : %s\n", Pa_GetErrorText(code)); + +#ifdef _WINDOWS + // Find device with lowest latency + const PaDeviceInfo * deviceInfo; + PaDeviceIndex device = -1; + for ( PaDeviceIndex i = 0 ; i < Pa_GetDeviceCount() ; i++ ) { + deviceInfo = Pa_GetDeviceInfo(i); + if ( device == -1 || + ( deviceInfo->defaultLowOutputLatency < Pa_GetDeviceInfo(device)->defaultLowOutputLatency + && deviceInfo->maxOutputChannels >= 2 ) ) + device = i; + } + // Open device + PaStreamParameters param; + memset(& param, 0, sizeof(PaStreamParameters)); + param.channelCount = 2; + param.device = device; + param.hostApiSpecificStreamInfo = 0; + param.sampleFormat = paInt16; + param.suggestedLatency = Pa_GetDeviceInfo(device)->defaultLowOutputLatency; + code = Pa_OpenStream(& stream, 0, & param, 44100.0, 512, paNoFlag, SynthStreamCallback, this); + if ( code != paNoError ) + fprintf(stderr, "PortAudio error : %s\n", Pa_GetErrorText(code)); +#else + Pa_OpenDefaultStream(& stream, 0, 2, paInt16, 44100.0, 512, + SynthStreamCallback, this); +#endif + + if ( ! stream ) + fprintf(stderr, "Could not init PortAudio\n"); + +#ifdef _DEBUG + if ( stream ) + latency = Pa_GetStreamInfo(stream)->outputLatency; + fprintf(stderr, "Device latency : %fs.\n", latency); +#endif + + // Initialize PSGs + for ( int i = 0 ; i < 6 ; i++ ) { + channels[i].psg = new WaveDuty(); + channels[i].volume = 0; + channels[i].mute = false; + } + for ( int i = 6 ; i < 8 ; i++ ) { + channels[i].psg = new Noise(); + channels[i].volume = 0; + channels[i].mute = false; + } +} + +Synth::~Synth() +{ + if ( stream ) { + Pa_CloseStream(stream); + Pa_Terminate(); + } +} + +void Synth::readRow() +{ + for ( int i = 0 ; i < 8 ; i++ ) { + if ( tune->channels[i].notes[row].active ) { + channels[i].volume = + tune->channels[i].notes[row].volume << 4; + int freq = midiNoteToFrequency(tune->channels[i].notes[row].note); + if ( i < 6 ) + freq *= 8; + channels[i].psg->setFrequency(freq); + } + } +} + +void Synth::synth(signed short * buffer, int samples, bool analyse) +{ + int left, right, s; + + for ( int i = samples ; i > 0 ; i-- ) { + // Playing + if ( row < MAXROWS && dRes > 1.0f/(float)tune->resolution ) { + dRow += 1.0f/((float)tune->resolution * 60.0f); + if ( dRow > 1.0f/(float)tune->rpm && row < MAXROWS ) { + readRow(); + row++; + dRow = 0.0f; + } + // Linear enveloppe + for ( int i = 0 ; i < 8 ; i++ ) { + channels[i].volume -= tune->channels[i].dec; + if ( channels[i].volume < 0 ) + channels[i].volume = 0; + channels[i].psg->setVolume(channels[i].volume >> 2); + } + dRes = 0.0f; + } + + // Mixing + right = 0; + for ( int i = 0 ; i < 8 ; i++ ) { + s = channels[i].psg->compute(1.0f/44100.0f); + if ( ! channels[i].mute ) + right += s; + } + + // Clipping + if ( right < -0x7FFF ) + right = -0x7FFF; + else if ( right > 0x7FFF ) + right = 0x7FFF; + + // Filling + left = right; + *buffer++ = left; + *buffer++ = right; + + dRes += 1.0f/44100.0f; + } +} + +void Synth::play() +{ + initialRow = row; + if ( stream ) + Pa_StartStream(stream); +} + +void Synth::pause() +{ + if ( stream && Pa_IsStreamActive(stream) ) + stop(); + else + play(); +} + +void Synth::stop(bool abort) +{ + if ( stream ) { + if ( abort ) + Pa_AbortStream(stream); + else + Pa_StopStream(stream); + } + reset(); + row -= (unsigned int)(latency / 60.0f * tune->rpm); + if ( row < initialRow ) + row = initialRow; +} + +void Synth::setRow(int l) +{ + bool p = stream && Pa_IsStreamActive(stream); + + if ( p ) + stop(); + row = l; + if ( p ) + play(); +} + +void Synth::setChannelDuty(int ch, int duty) +{ + channels[ch].psg->setDuty(duty); +} + +unsigned int Synth::getCurrentRow() +{ + if ( stream && Pa_IsStreamActive(stream) ) { + int r = (int)(row - latency / 60.0f * tune->rpm); + if ( r < (int) initialRow ) + return initialRow; + return r; + } + + return row; +} + +void Synth::reset() +{ + dRes = dRow = 0.0f; + for ( int i = 0 ; i < 8 ; i++ ) { + channels[i].psg->setVolume(0); + channels[i].psg->setDuty(tune->channels[i].duty); + channels[i].psg->reset(); + channels[i].volume = 0; + } +} + +unsigned int Synth::getVolume(int ch) +{ + if ( channels[ch].mute ) + return 0; + + signed short s = channels[ch].psg->getSample(); + if ( s < 0 ) + return -s; + else + return s; +} + +bool Synth::waveOut(const char * filename) +{ + FILE * f = fopen(filename, "wb"); + if ( f == 0 ) + return false; + + // RIFF header + fwrite("RIFF", 1, 4, f); + fseek(f, 4, SEEK_CUR); // will write file size after writing data :) + fwrite("WAVE", 1, 4, f); + + // FMT header + fwrite("fmt ", 1, 4, f); + static const int subChunk1Size = 16; + fwrite(& subChunk1Size, 4, 1, f); + static const short int format = 1; // PCM + fwrite(& format, 2, 1, f); + static const short int nbChannels = 2; + fwrite(& nbChannels, 2, 1, f); + static const int sampleRate = 44100; + fwrite(& sampleRate, 4, 1, f); + static const int byteRate = sampleRate * nbChannels * sizeof(short int); + fwrite(& byteRate, 4, 1, f); + static const short int blockAlign = nbChannels * sizeof(short int); + fwrite(& blockAlign, 2, 1, f); + static const short int bitsPerSample = 16; + fwrite(& bitsPerSample, 2, 1, f); + + stop(); + int savedRow = row; + row = 0; + + // DATA + fwrite("data", 1, 4, f); + fseek(f, 4, SEEK_CUR); // will write data size after writing data :) + + int dataSize = 0; + bool finished = false; + static signed short buffer[2048]; + while ( ! finished ) { + synth(buffer, 2048, false); + fwrite(buffer, 2, 2048 * nbChannels, f); + dataSize += 2048 * nbChannels * sizeof(short); + + int end = 0; + while ( end < 8 && + (row > tune->channels[end].lastRow && getVolume(end) == 0) ) + end++; + if ( end == 8 ) + finished = true; + } + + // Data size + fseek(f, 40, SEEK_SET); + fwrite(& dataSize, 4, 1, f); + + // File size + dataSize += 36; + fseek(f, 4, SEEK_SET); + fwrite(& dataSize, 4, 1, f); + + fclose(f); + + row = savedRow; + + return true; +} diff --git a/BitBoxWin32/BitBoxWin32/synth.h b/BitBoxWin32/BitBoxWin32/synth.h new file mode 100644 index 0000000..9521f55 --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/synth.h @@ -0,0 +1,60 @@ +#ifndef _SYNTH_H_ +#define _SYNTH_H_ + +#include + +#include "tune.h" +#include "psg.h" + +class Synth { + PaStream * stream; + + Tune * tune; + + struct Channel { + PSG * psg; + int volume; + bool mute; + }; + + Channel channels[8]; + float dRes, dRow; + unsigned int row, initialRow; + PaTime latency; + + void readRow(); + +public: + static const int analyseBufferSize = 4096; +private: + int analyseBufferPosition; + signed short analyseBuffer[analyseBufferSize]; + +public: + Synth(Tune * tune); + ~Synth(); + + void play(); + void stop(bool abort = true); + void pause(); + + bool toggleMute(int channel) + { return channels[channel].mute = ! channels[channel].mute; } + void setRow(int l); + void setChannelDuty(int channel, int duty); + + unsigned int getCurrentRow(); + unsigned int getVolume(int channel); + + void synth(signed short * samples, int count, bool analyse = true); + + signed short * getAnalyseBuffer() { return analyseBuffer; } + + void reset(); + + Tune * getTune() { return tune; } + + bool waveOut(const char * filename); +}; + +#endif // _SYNTH_H_ diff --git a/BitBoxWin32/BitBoxWin32/trig.c b/BitBoxWin32/BitBoxWin32/trig.c new file mode 100644 index 0000000..4fea409 --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/trig.c @@ -0,0 +1,11 @@ +#include "trig.h" + +//int uber_sin(int x) +//{ +// int ax; +// x = 4096 - (x & 0x1FFF); +// ax = x; +// if ( ax < 0 ) +// ax = -ax; +// return 4 * x - ((4 * x * ax) >> 12); +//} \ No newline at end of file diff --git a/BitBoxWin32/BitBoxWin32/trig.h b/BitBoxWin32/BitBoxWin32/trig.h new file mode 100644 index 0000000..e0f7d51 --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/trig.h @@ -0,0 +1,25 @@ +#ifndef _TRIG_H_ +#define _TRIG_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +// approximation of sin with pi=4096 +// +// pi-(x mod 2pi) then +// 4.x - 4.x.|x| +int uber_sin(int x); +#define uber_cos(x) uber_sin(x + 0x800) + +// Conversion from old cos/sin to new uber cos/sin +// The old was working with real value of pi in fixed point 12 (pi = 12867) +// while the new one uses pi = 4096 +#define sin(x) uber_sin((((x) * 325) >> 10)) +#define cos(x) uber_cos((((x) * 325) >> 10)) + +#ifdef __cplusplus +} +#endif + +#endif // _TRIG_H_ \ No newline at end of file diff --git a/BitBoxWin32/BitBoxWin32/tune.cpp b/BitBoxWin32/BitBoxWin32/tune.cpp new file mode 100644 index 0000000..05f7720 --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/tune.cpp @@ -0,0 +1,249 @@ +#include "tune.h" +#include "midi.h" +#include +#include +#include + +struct NDSChannel { + unsigned int timer; + unsigned int volume; + unsigned int duty; + unsigned int dec; + int notes_offset; +}; + +#ifdef _WINDOWS +#pragma pack(push, 1) +#endif + +struct NDSNote { + unsigned int time : 13; + unsigned int volume : 5; + unsigned int frequency : 14; +#ifdef _WINDOWS +}; +#else +} __attribute__((packed)); +#endif + +#ifdef _WINDOWS +#pragma pack(pop) +#endif + +void writeNote(int time, int volume, int frequency, FILE * f) +{ + NDSNote tmpNote = { time, volume, frequency }; + fwrite(& tmpNote, sizeof(NDSNote), 1, f); + +#ifdef _DEBUG + printf("N time(%4d) volume(%2d) frequency(%8d)\n", time, volume, frequency); +#endif +} + +int iceilf(float f) +{ + return (int)f + 1; +} + +bool Tune::Export(const char * filename) +{ + assert(sizeof(NDSChannel) == 20); + + NDSChannel tmpChannel; + int nbNotes[8]; + + int notes_offset = (sizeof(NDSChannel) * 8)/4; + + FILE * file = fopen(filename, "wb"); + + if ( file == 0 ) + return false; + + memset(nbNotes, 0, sizeof(int) * 8); + + // Jump over channels header, will be written after + fseek(file, sizeof(NDSChannel) * 8, SEEK_SET); + +#ifdef _DEBUG + int dummies = 0; +#endif + + int framesPerRow = iceilf(1.0f/((float)rpm/60.0f/(float)resolution)); + + // Write notes + for ( int i = 0 ; i < 8 ; i++ ) { + int rows = 0; + for ( int j = 0 ; j < MAXROWS ; j++ ) { + if ( channels[i].notes[j].active ) { + int time = rows * framesPerRow; + while ( time > 8191 ) { // output dummy notes to avoid overflows + writeNote(8191, 0, 1, file); + time -= 8191; + nbNotes[i]++; +#ifdef _DEBUG + dummies++; +#endif + } + writeNote(time, channels[i].notes[j].volume, + midiNoteToFrequency(channels[i].notes[j].note), file); + nbNotes[i]++; + rows = 0; + } + rows++; + } + // End of track note + writeNote(0, 0, 0, file); + nbNotes[i]++; + } + +#ifdef _DEBUG + printf("Exporting '%s' created %d dummy notes.\n", filename, dummies); +#endif + + fseek(file, 0, SEEK_SET); + + // Write channels (header) + for ( int i = 0 ; i < 8 ; i++ ) { + tmpChannel.timer = 0; + tmpChannel.volume = 0; + tmpChannel.duty = channels[i].duty<<24; + tmpChannel.dec = channels[i].dec; + tmpChannel.notes_offset = notes_offset; + fwrite(& tmpChannel, sizeof(NDSChannel), 1, file); + + notes_offset += nbNotes[i]; + } + + fclose(file); + + return true; +} + +bool Tune::Import(const char * filename) +{ + // XXX // + return false; + // XXX // + + NDSChannel tmpChannel; + NDSNote tmpNote; + + FILE * file = fopen(filename, "rb"); + + if ( file == 0 ) + return false; + + fread(& resolution, 2, 1, file); + fread(& rpm, 2, 1, file); + + // Reset everything and read channels + for ( int i = 0 ; i < 8 ; i++ ) { + channels[i].reset(); + fread(& tmpChannel, sizeof(NDSChannel), 1, file); + channels[i].duty = tmpChannel.duty; + channels[i].dec = tmpChannel.dec; + } + + // Read notes + for ( int i = 0 ; i < 8 ; i++ ) { + int row = 0; + do { + fread(& tmpNote, sizeof(NDSNote), 1, file); + if ( tmpNote.time != 0 ) { + row += (int)((float)(tmpNote.time - 1) / (float)resolution + / 60.0f * (float)rpm); + if ( tmpNote.frequency != 0 ) + channels[i].notes[row].active = true; + channels[i].notes[row].volume = tmpNote.volume; + channels[i].notes[row].note + = midiFrequencyToNote(tmpNote.frequency); + channels[i].lastRow = row; + row++; + } + } while ( tmpNote.time != 0 ); + } + + return true; +} + +bool Tune::Save(const char * filename) +{ + char _filename[256]; + strcpy(_filename, filename); + strcat(_filename, ".txt"); + + FILE * f = fopen(_filename, "wb"); + + if ( f == 0 ) { + return false; + } + + fprintf(f, "%d\n", rpm); + + for ( int i = 0 ; i < 8 ; i++ ) + fprintf(f, "%d %d\n", channels[i].duty, channels[i].dec); + + for ( int i = 0 ; i < 8 ; i++ ) { + for ( int j = 0 ; j < MAXROWS ; j++ ) { + if ( channels[i].notes[j].active ) { + fprintf(f, "%d %d %d %d\n", i, j, + channels[i].notes[j].volume, + channels[i].notes[j].note); + } + } + } + + fclose(f); + + return true; +} + +bool Tune::Load(const char * filename) +{ + char _filename[256]; + strcpy(_filename, filename); + strcat(_filename, ".txt"); + + FILE * f = fopen(_filename, "rb"); + + clear(); + + if ( f == 0 ) { + return false; + } + + if ( fscanf(f, "%d\n", &rpm) != 1 ) + goto error; + + int framesPerRow = iceilf(1.0f/((float)rpm/60.0f/(float)resolution)); + rpm = framesPerRow * 60; + + for ( int i = 0 ; i < 8 ; i++ ) + if ( fscanf(f, "%d %d\n", &(channels[i].duty), &(channels[i].dec)) != 2 ) + goto error; + + int c, r, v, n; + while ( fscanf(f, "%d %d %d %d\n", &c, &r, &v, &n) == 4 ) { + channels[c].notes[r].volume = v; + channels[c].notes[r].note = n; + channels[c].notes[r].active = true; + if ( channels[c].lastRow < r ) + channels[c].lastRow = r; + } + + fclose(f); + + return true; + +error: + fclose(f); + return false; +} + +void Tune::clear() +{ + resolution = 60; + rpm = 280; + for ( int i = 0 ; i < 8 ; i++ ) + channels[i].reset(); +} diff --git a/BitBoxWin32/BitBoxWin32/tune.h b/BitBoxWin32/BitBoxWin32/tune.h new file mode 100644 index 0000000..c7300c4 --- /dev/null +++ b/BitBoxWin32/BitBoxWin32/tune.h @@ -0,0 +1,25 @@ +#ifndef _TUNE_H_ +#define _TUNE_H_ + +#include "channel.h" + +struct Tune { + Channel channels[8]; + int resolution; + int rpm; // rows per minute + + Tune() { clear(); } + + // To text format used by the tracker + bool Save(const char * filename); + bool Load(const char * filename); + + // To binary format used by the NDS player + // XXX FUCKED UP ! XXX + bool Export(const char * filename); + bool Import(const char * filename); + + void clear(); +}; + +#endif // _TUNE_H_ diff --git a/DisplayListTestCube/Makefile b/DisplayListTestCube/Makefile new file mode 100644 index 0000000..32ba0f7 --- /dev/null +++ b/DisplayListTestCube/Makefile @@ -0,0 +1,129 @@ +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- + +ifeq ($(strip $(DEVKITARM)),) +$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") +endif + +include $(DEVKITARM)/ds_rules + +#--------------------------------------------------------------------------------- +# TARGET is the name of the output +# BUILD is the directory where object files & intermediate files will be placed +# SOURCES is a list of directories containing source code +# INCLUDES is a list of directories containing extra header files +#--------------------------------------------------------------------------------- +TARGET := $(shell basename $(CURDIR)) +BUILD := build +SOURCES := gfx source data +INCLUDES := include build + +#--------------------------------------------------------------------------------- +# options for code generation +#--------------------------------------------------------------------------------- +ARCH := -mthumb -mthumb-interwork + +CFLAGS := -Wall -Os\ + -march=armv5te -mtune=arm946e-s \ + $(ARCH) +#CFLAGS += -nostdlib -nodefaultlibs -nostartfiles + +CFLAGS += $(INCLUDE) -DARM9 +CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions + +ASFLAGS := -g $(ARCH) +LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map) +#LDFLAGS += -nostartfiles + +#--------------------------------------------------------------------------------- +# any extra libraries we wish to link with the project +#--------------------------------------------------------------------------------- + +LIBS := -lnds9 + + +#--------------------------------------------------------------------------------- +# list of directories containing libraries, this must be the top level containing +# include and lib +#--------------------------------------------------------------------------------- +LIBDIRS := $(LIBNDS) + +#--------------------------------------------------------------------------------- +# no real need to edit anything past this point unless you need to add additional +# rules for different file extensions +#--------------------------------------------------------------------------------- +ifneq ($(BUILD),$(notdir $(CURDIR))) +#--------------------------------------------------------------------------------- + +export OUTPUT := $(CURDIR)/$(TARGET) + +export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) +export DEPSDIR := $(CURDIR)/$(BUILD) + +CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) +CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) +SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) +BINFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.bin))) + +#--------------------------------------------------------------------------------- +# use CXX for linking C++ projects, CC for standard C +#--------------------------------------------------------------------------------- +ifeq ($(strip $(CPPFILES)),) +#--------------------------------------------------------------------------------- + export LD := $(CC) +#--------------------------------------------------------------------------------- +else +#--------------------------------------------------------------------------------- + export LD := $(CXX) +#--------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------- + +export OFILES := $(BINFILES:.bin=.o) \ + $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) + +export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ + $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ + $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ + -I$(CURDIR)/$(BUILD) + +export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) + +.PHONY: $(BUILD) clean + +#--------------------------------------------------------------------------------- +$(BUILD): + @[ -d $@ ] || mkdir -p $@ + @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile + +#--------------------------------------------------------------------------------- +clean: + @echo clean ... + @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).arm9 $(TARGET).ds.gba + + +#--------------------------------------------------------------------------------- +else + +DEPENDS := $(OFILES:.o=.d) + +#--------------------------------------------------------------------------------- +# main targets +#--------------------------------------------------------------------------------- +$(OUTPUT).nds : $(OUTPUT).arm9 +$(OUTPUT).arm9 : $(OUTPUT).elf +$(OUTPUT).elf : $(OFILES) + +#--------------------------------------------------------------------------------- +%.o : %.bin +#--------------------------------------------------------------------------------- + @echo $(notdir $<) + @$(bin2o) + + +-include $(DEPENDS) + +#--------------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------------- diff --git a/DisplayListTestCube/make.bat b/DisplayListTestCube/make.bat new file mode 100644 index 0000000..9b4a093 --- /dev/null +++ b/DisplayListTestCube/make.bat @@ -0,0 +1,2 @@ +d:\sdk\devkitpro\msys\bin\make.exe +pause \ No newline at end of file diff --git a/DisplayListTestCube/source/ds_arm9_crt0.s b/DisplayListTestCube/source/ds_arm9_crt0.s new file mode 100644 index 0000000..4962580 --- /dev/null +++ b/DisplayListTestCube/source/ds_arm9_crt0.s @@ -0,0 +1,369 @@ +#include "options.h" +#if !STDLIB +@-------------------------------------------------------------------------------- +@ DS processor selection +@-------------------------------------------------------------------------------- + .arch armv5te + .cpu arm946e-s +@-------------------------------------------------------------------------------- +#define PAGE_4K (0b01011 << 1) +#define PAGE_8K (0b01100 << 1) +#define PAGE_16K (0b01101 << 1) +#define PAGE_32K (0b01110 << 1) +#define PAGE_64K (0b00111 << 1) +#define PAGE_128K (0b10000 << 1) +#define PAGE_256K (0b10001 << 1) +#define PAGE_512K (0b10010 << 1) +#define PAGE_1M (0b10011 << 1) +#define PAGE_2M (0b10100 << 1) +#define PAGE_4M (0b10101 << 1) +#define PAGE_8M (0b10110 << 1) +#define PAGE_16M (0b10111 << 1) +#define PAGE_32M (0b11000 << 1) +#define PAGE_64M (0b11001 << 1) +#define PAGE_128M (0b11010 << 1) +#define PAGE_256M (0b11011 << 1) +#define PAGE_512M (0b11100 << 1) +#define PAGE_1G (0b11101 << 1) +#define PAGE_2G (0b11110 << 1) +#define PAGE_4G (0b11111 << 1) + +#define ITCM_LOAD (1<<19) +#define ITCM_ENABLE (1<<18) +#define DTCM_LOAD (1<<17) +#define DTCM_ENABLE (1<<16) +#define DISABLE_TBIT (1<<15) +#define ROUND_ROBIN (1<<14) +#define ALT_VECTORS (1<<13) +#define ICACHE_ENABLE (1<<12) +#define BIG_ENDIAN (1<<7) +#define DCACHE_ENABLE (1<<2) +#define PROTECT_ENABLE (1<<0) + + .equ _libnds_argv,0x027FFF70 + +@-------------------------------------------------------------------------------- + .section ".init" + .global _start +@-------------------------------------------------------------------------------- + .align 4 + .arm +@-------------------------------------------------------------------------------- +_start: +@-------------------------------------------------------------------------------- + mov r0, #0x04000000 @ IME = 0; + str r0, [r0, #0x208] + +@-------------------------------------------------------------------------------- +@ turn the power on for M3 +@-------------------------------------------------------------------------------- +#if SAFE + ldr r1, =0x8203 + add r0,r0,#0x304 + strh r1, [r0] + + ldr r1, =0x00002078 @ disable TCM and protection unit + mcr p15, 0, r1, c1, c0 +#endif + +@-------------------------------------------------------------------------------- +@ Protection Unit Setup added by Sasq +@-------------------------------------------------------------------------------- + @ Disable cache + mov r0, #0 + mcr p15, 0, r0, c7, c5, 0 @ Instruction cache + mcr p15, 0, r0, c7, c6, 0 @ Data cache + + @ Wait for write buffer to empty + mcr p15, 0, r0, c7, c10, 4 + + ldr r0, =__dtcm_start + orr r0,r0,#0x0a + mcr p15, 0, r0, c9, c1,0 @ DTCM base = __dtcm_start, size = 16 KB + + mov r0,#0x20 + mcr p15, 0, r0, c9, c1,1 @ ITCM base = 0 , size = 32 MB + +@-------------------------------------------------------------------------------- +@ Setup memory regions similar to Release Version +@-------------------------------------------------------------------------------- + + @------------------------------------------------------------------------ + @ Region 0 - IO registers + @------------------------------------------------------------------------ + ldr r0,=( PAGE_64M | 0x04000000 | 1) + mcr p15, 0, r0, c6, c0, 0 + + @------------------------------------------------------------------------ + @ Region 1 - Main Memory + @------------------------------------------------------------------------ + ldr r0,=( PAGE_4M | 0x02000000 | 1) + mcr p15, 0, r0, c6, c1, 0 + + @------------------------------------------------------------------------ + @ Region 2 - alternate vector base + @------------------------------------------------------------------------ +#if SAFE + ldr r0,=( PAGE_4K | 0x00000000 | 1) + mcr p15, 0, r0, c6, c2, 0 + + @------------------------------------------------------------------------ + @ Region 3 - DS Accessory (GBA Cart) + @------------------------------------------------------------------------ + ldr r0,=( PAGE_128M | 0x08000000 | 1) + mcr p15, 0, r0, c6, c3, 0 + + @------------------------------------------------------------------------ + @ Region 4 - DTCM + @------------------------------------------------------------------------ + ldr r0,=__dtcm_start + orr r0,r0,#(PAGE_16K | 1) + mcr p15, 0, r0, c6, c4, 0 + + @------------------------------------------------------------------------ + @ Region 5 - ITCM + @------------------------------------------------------------------------ + ldr r0,=__itcm_start + + @ align to 32k boundary + mov r0,r0,lsr #15 + mov r0,r0,lsl #15 + + orr r0,r0,#(PAGE_32K | 1) + mcr p15, 0, r0, c6, c5, 0 + + @------------------------------------------------------------------------ + @ Region 6 - System ROM + @------------------------------------------------------------------------ + ldr r0,=( PAGE_32K | 0xFFFF0000 | 1) + mcr p15, 0, r0, c6, c6, 0 + + @------------------------------------------------------------------------ + @ Region 7 - non cacheable main ram + @------------------------------------------------------------------------ + ldr r0,=( PAGE_4M | 0x02400000 | 1) + mcr p15, 0, r0, c6, c7, 0 + + @------------------------------------------------------------------------ + @ Write buffer enable + @------------------------------------------------------------------------ + ldr r0,=0b00000010 + mcr p15, 0, r0, c3, c0, 0 +#endif + + @------------------------------------------------------------------------ + @ DCache & ICache enable + @------------------------------------------------------------------------ + ldr r0,=0b01000010 + mcr p15, 0, r0, c2, c0, 0 + mcr p15, 0, r0, c2, c0, 1 + + @------------------------------------------------------------------------ + @ IAccess + @------------------------------------------------------------------------ +#if SAFE + ldr r0,=0x36636633 + mcr p15, 0, r0, c5, c0, 3 + + @------------------------------------------------------------------------ + @ DAccess + @------------------------------------------------------------------------ + ldr r0,=0x36333633 + mcr p15, 0, r0, c5, c0, 2 +#endif + + @------------------------------------------------------------------------ + @ Enable ICache, DCache, ITCM & DTCM + @------------------------------------------------------------------------ + mrc p15, 0, r0, c1, c0, 0 +#if SAFE + ldr r1,= ITCM_ENABLE | DTCM_ENABLE | ICACHE_ENABLE | DCACHE_ENABLE | PROTECT_ENABLE +#else + ldr r1, =ICACHE_ENABLE|DCACHE_ENABLE|PROTECT_ENABLE +#endif + orr r0,r0,r1 + mcr p15, 0, r0, c1, c0, 0 + + mov r0, #0x12 @ Switch to IRQ Mode + msr cpsr, r0 + ldr sp, =__sp_irq @ Set IRQ stack + + mov r0, #0x13 @ Switch to SVC Mode + msr cpsr, r0 + ldr sp, =__sp_svc @ Set SVC stack + + mov r0, #0x1F @ Switch to System Mode + msr cpsr, r0 + ldr sp, =__sp_usr @ Set user stack + +#if SAFE + ldr r1, =__itcm_lma @ Copy instruction tightly coupled memory (itcm section) from LMA to VMA + ldr r2, =__itcm_start + ldr r4, =__itcm_end + bl CopyMemCheck + + ldr r1, =__vectors_lma @ Copy reserved vectors area (itcm section) from LMA to VMA + ldr r2, =__vectors_start + ldr r4, =__vectors_end + bl CopyMemCheck + + ldr r1, =__dtcm_lma @ Copy data tightly coupled memory (dtcm section) from LMA to VMA + ldr r2, =__dtcm_start + ldr r4, =__dtcm_end + bl CopyMemCheck + + bl checkARGV @ check and process argv trickery + + ldr r0, =__bss_start @ Clear BSS section + ldr r1, =__bss_end + sub r1, r1, r0 + bl ClearMem + + ldr r0, =__sbss_start @ Clear SBSS section + ldr r1, =__sbss_end + sub r1, r1, r0 + bl ClearMem + + ldr r1, =fake_heap_end @ set heap end + ldr r0, =__eheap_end + str r0, [r1] + + ldr r0, =_libnds_argv + + @ reset heap base + ldr r2, [r0,#20] @ newheap base + ldr r1,=fake_heap_start + str r2,[r1] + + push {r0} + ldr r3, =initSystem + blx r3 @ system initialisation + + ldr r3, =__libc_init_array @ global constructors + blx r3 + + pop {r0} + + ldr r1, [r0,#16] @ argv + ldr r0, [r0,#12] @ argc +#endif + + ldr r3, =Main + blx r3 @ jump to user code + +#if SAFE + @ If the user ever returns, go back to passme loop + ldr r0, =ILoop + ldr r0, [r0] + ldr r1, =0x027FFE78 + str r0, [r1] + bx r1 +ILoop: + b ILoop + +@------------------------------------------------------------------------------- +@ check for a commandline +@------------------------------------------------------------------------------- +checkARGV: +@------------------------------------------------------------------------------- + ldr r0, =_libnds_argv @ argv structure + mov r1, #0 + str r1, [r0,#12] @ clear argc + str r1, [r0,#16] @ clear argv + + ldr r1, [r0] @ argv magic number + ldr r2, =0x5f617267 @ '_arg' + cmp r1, r2 + bxne lr @ bail out if no magic + + ldr r1, [r0, #4] @ command line address + ldr r2, [r0, #8] @ length of command line + + @ copy to heap + ldr r3, =__end__ @ initial heap base + str r3, [r0, #4] @ set command line address + + cmp r2, #0 + subnes r4, r3, r1 @ dst-src + bxeq lr @ dst == src || len==0 : nothing to do. + + cmphi r2, r4 @ len > (dst-src) + bhi .copybackward + +.copyforward: + ldrb r4, [r1], #1 + strb r4, [r3], #1 + subs r2, r2, #1 + bne .copyforward + b .copydone + +.copybackward: + subs r2, r2, #1 + ldrb r4, [r1, r2] + strb r4, [r3, r2] + bne .copybackward + +.copydone: + push {lr} + ldr r3, =build_argv + blx r3 + pop {lr} + bx lr + + +@------------------------------------------------------------------------------- +@ Clear memory to 0x00 if length != 0 +@ r0 = Start Address +@ r1 = Length +@------------------------------------------------------------------------------- +ClearMem: +@------------------------------------------------------------------------------- + mov r2, #3 @ Round down to nearest word boundary + add r1, r1, r2 @ Shouldn't be needed + bics r1, r1, r2 @ Clear 2 LSB (and set Z) + bxeq lr @ Quit if copy size is 0 + + mov r2, #0 +ClrLoop: + stmia r0!, {r2} + subs r1, r1, #4 + bne ClrLoop + + bx lr + +@------------------------------------------------------------------------------- +@ Copy memory if length != 0 +@ r1 = Source Address +@ r2 = Dest Address +@ r4 = Dest Address + Length +@------------------------------------------------------------------------------- +CopyMemCheck: +@------------------------------------------------------------------------------- + sub r3, r4, r2 @ Is there any data to copy? +@------------------------------------------------------------------------------- +@ Copy memory +@ r1 = Source Address +@ r2 = Dest Address +@ r3 = Length +@------------------------------------------------------------------------------- +CopyMem: +@------------------------------------------------------------------------------- + mov r0, #3 @ These commands are used in cases where + add r3, r3, r0 @ the length is not a multiple of 4, + bics r3, r3, r0 @ even though it should be. + bxeq lr @ Length is zero, so exit +CIDLoop: + ldmia r1!, {r0} + stmia r2!, {r0} + subs r3, r3, #4 + bne CIDLoop + + bx lr +#endif + +@-------------------------------------------------------------------------------- + .align + .pool + .end +@-------------------------------------------------------------------------------- +#endif diff --git a/DisplayListTestCube/source/main.c b/DisplayListTestCube/source/main.c new file mode 100644 index 0000000..4643734 --- /dev/null +++ b/DisplayListTestCube/source/main.c @@ -0,0 +1,558 @@ +#include + +#include "options.h" + +// Commands +#define CMTXMODE 0x10 +#define CMTXPUSH 0x11 +#define CMTXPOP 0x12 +#define CMTXIDENTITY 0x15 +#define CMTXLOAD4x4 0x16 +#define CMTXLOAD4x3 0x17 +#define CMTXMULT3x3 0x1A +#define CMTXSCALE 0x1B +#define CMTXTRANSLATE 0x1C +#define CCOLOR 0x20 +#define CNORMAL 0x21 +#define CVERTEX 0x24 +#define CPOLYATTR 0x29 +#define CDIFAMB 0x30 +#define CLIGHTVECTOR 0x32 +#define CLIGHTCOLOR 0x33 +#define CBEGIN 0x40 +#define CVIEWPORT 0x60 + +// Parameters +#define PROJECTION 0 +#define MODELVIEW 2 + +#define QUAD 1 + +#define NORMAL(x,y,z) (((x)&0x3FF)|(((y)&0x3FF)<<10)|(((z)&0x3FF)<<20)) +#define VERTEX(x,y,z) \ + (((x)&0x3FF)|(((y)&0x3FF)<<10)|(((z)&0x3FF)<<20)) + +#define DIFAMB(dif,amb) ((dif)|((amb)<<16)) + +#define VIEWPORT(x1,y1,x2,y2) ((x1)|((y1)<<8)|((x2)<<16)|((y2)<<24)) + +// Polygon attributes +#define LIGHT0 BIT(0) +#define POLYFRONT BIT(7) +#define POLYBACK BIT(6) +#define SOLID (31<<16) +#define WIREFRAME (0<<16) + +// FIFO command packer +#define COMMAND(a,b,c,d) \ + (((a)&0xFF)|(((b)&0xFF)<<8)|(((c)&0xFF)<<16)|(((d)&0xFF)<<24)) + + +int uber_sin(int x) +{ + x = 4096 - (x & 0x1FFF); + int ax = x; + if ( ax < 0 ) + ax = -ax; + return 4 * x - ((4 * x * ax) >> 12); +} + +#define uber_cos(x) uber_sin(x + 0x800) + + +#undef B +#undef C + +void callList(u32 * list, int size) +{ + DMA_SRC(0) = (unsigned int) list; + DMA_DEST(0) = 0x4000400; //GXFIFO + DMA_CR(0) = DMA_FIFO | size; + while ( DMA_CR(0) & DMA_BUSY ) + ; +} + +u32 bglist[] = +{ + COMMAND(CCOLOR, CVERTEX, CVERTEX, CCOLOR), + RGB15(31, 31, 31), + VERTEX(-4*64, -4*64, 0), + VERTEX( 4*64, -4*64, 0), + RGB15(12, 12, 31), + COMMAND(CVERTEX, CVERTEX, 0, 0), + VERTEX( 4*64, 4*64, 0), + VERTEX(-4*64, 4*64, 0), +}; +#define bg() callList(bglist, sizeof(bglist)/sizeof(u32)) + +u32 cubelist[] = +{ + COMMAND(CDIFAMB, CBEGIN, CNORMAL, CVERTEX), + DIFAMB(RGB15(16, 16, 16), RGB15(8, 8, 8)), + QUAD, + NORMAL(0, 512, 0), + VERTEX(-64,-64,-64), + + COMMAND(CVERTEX, CVERTEX, CVERTEX, CNORMAL), + VERTEX( 64,-64,-64), + VERTEX( 64,-64, 64), + VERTEX(-64,-64, 64), + NORMAL(0, 511, 0), + + COMMAND(CVERTEX, CVERTEX, CVERTEX, CVERTEX), + VERTEX(-64, 64,-64), + VERTEX(-64, 64, 64), + VERTEX( 64, 64, 64), + VERTEX( 64, 64,-64), + + COMMAND(CNORMAL, CVERTEX, CVERTEX, CVERTEX), + NORMAL(512, 0, 0), + VERTEX(-64,-64,-64), + VERTEX(-64,-64, 64), + VERTEX(-64, 64, 64), + + COMMAND(CVERTEX, CNORMAL, CVERTEX, CVERTEX), + VERTEX(-64, 64,-64), + NORMAL(511, 0, 0), + VERTEX( 64,-64,-64), + VERTEX( 64, 64,-64), + + COMMAND(CVERTEX, CVERTEX, CNORMAL, CVERTEX), + VERTEX( 64, 64, 64), + VERTEX( 64,-64, 64), + NORMAL( 0, 0, 512), + VERTEX(-64,-64,-64), + + COMMAND(CVERTEX, CVERTEX, CVERTEX, CNORMAL), + VERTEX(-64, 64,-64), + VERTEX( 64, 64,-64), + VERTEX( 64,-64,-64), + NORMAL( 0, 0, 511), + + COMMAND(CVERTEX, CVERTEX, CVERTEX, CVERTEX), + VERTEX(-64,-64, 64), + VERTEX( 64,-64, 64), + VERTEX( 64, 64, 64), + VERTEX(-64, 64, 64), +}; +#define cube() callList(cubelist, sizeof(cubelist)/sizeof(u32)) + +u32 initlist[] = +{ + COMMAND(CVIEWPORT, CMTXMODE, CMTXLOAD4x4, CMTXMODE), + VIEWPORT(0, 0, 255, 191), + PROJECTION, + // Projection matrix Perspective(fov=50°, near=0.1, far=40, ratio=1.33) + 6587, 0, 0, 0, + 0, 8783, 0, 0, + 0, 0, -4116, -4096, + 0, 0, -821, 0, + MODELVIEW, + + COMMAND(CPOLYATTR, CMTXIDENTITY, CLIGHTVECTOR, CLIGHTCOLOR), + LIGHT0|POLYFRONT|SOLID, + NORMAL(-96, -144, -482), + RGB15(31, 31, 31), +}; +#define init() callList(initlist, sizeof(initlist)/sizeof(u32)) + +int abs(int x) +{ + return ( x < 0 ) ? -x : x; +} + +int min(int a, int b) +{ + return ( a < b ) ? a : b; +} + +// input : fixed .12 +// output : fixed .12 +int sin(int x) +{ + // translate x into [-pi, pi].f12 + while ( x > 12868 ) + x -= 25736; + while ( x < -12868 ) + x += 25736; + // compute sin(x) + // see http://www.devmaster.net/forums/showthread.php?t=5784 + const int B = 5215; + const int C = -1660; + return (B*x + ((C*x)>>12)*abs(x))>>12; +} + +int cos(int x) +{ + x += 6434; + return sin(x); +} + +inline void push() +{ + MATRIX_PUSH = 0; +} + +inline void pop() +{ + MATRIX_POP = 1; +} + +inline void identity() +{ + MATRIX_IDENTITY = 0; +} + +inline void translate(int x, int y, int z) +{ + MATRIX_TRANSLATE = x; + MATRIX_TRANSLATE = y; + MATRIX_TRANSLATE = z; +} + +inline void scale(int x, int y, int z) +{ + MATRIX_SCALE = x; + MATRIX_SCALE = y; + MATRIX_SCALE = z; +} + +void rotate(int angle, int x, int y, int z) +{ + int s = sin(angle); + int c = cos(angle); + + MATRIX_MULT3x3 = (x == 0) ? c : 1<<12; + MATRIX_MULT3x3 = z * s; + MATRIX_MULT3x3 = y * -s; + + MATRIX_MULT3x3 = z * -s; + MATRIX_MULT3x3 = (y == 0) ? c : 1<<12; + MATRIX_MULT3x3 = x * s; + + MATRIX_MULT3x3 = y * s; + MATRIX_MULT3x3 = x * -s; + MATRIX_MULT3x3 = (z == 0) ? c : 1<<12; +} + +void uber_rotate(int angle, int x, int y, int z) +{ + int s = uber_sin(angle); + int c = uber_cos(angle); + + MATRIX_MULT3x3 = (x == 0) ? c : 1<<12; + MATRIX_MULT3x3 = z * s; + MATRIX_MULT3x3 = y * -s; + + MATRIX_MULT3x3 = z * -s; + MATRIX_MULT3x3 = (y == 0) ? c : 1<<12; + MATRIX_MULT3x3 = x * s; + + MATRIX_MULT3x3 = y * s; + MATRIX_MULT3x3 = x * -s; + MATRIX_MULT3x3 = (z == 0) ? c : 1<<12; +} + +#define rotateX(angle) rotate(angle, 1, 0, 0) +#define rotateY(angle) rotate(angle, 0, 1, 0) +#define rotateZ(angle) rotate(angle, 0, 0, 1) +#define uber_rotateX(angle) uber_rotate(angle, 1, 0, 0) +#define uber_rotateY(angle) uber_rotate(angle, 0, 1, 0) +#define uber_rotateZ(angle) uber_rotate(angle, 0, 0, 1) + +void arms(int t, int m) +{ + push(); +// translate(0.24f*m, 0.4f, 0); + translate(983*m, 1638, 0); +// rotateZ(30°*m); + rotateZ(2145*m); +// rotateX(cos(t)*20°+180°); + rotateX(((cos(t)*1430)>>12)+12868); +// translate(0, 0.3, 0); + translate(0, 1229, 0); + push(); +// scale(0.1, 0.3, 0.1); + scale(410, 1229, 410); + cube(); + pop(); + +// translate(0, 0.22, 0); + translate(0, 901, 0); +// rotateY(abs(cos(t))*16*m); + rotateY((abs(cos(t)*1144)>>12)*m); +// rotateX(100°); + rotateX(7149); +// rotateZ(165°*m); + rotateZ(11796*m); +// translate(0, 0.21, 0); + translate(0, 860, 0); + push(); +// scale(0.09, 0.27, 0.09); + scale(369, 1106, 369); + cube(); + pop(); + pop(); +} + +void legs(int t, int m) +{ + push(); +// translate(0.19*m, 0, -0.015); + translate(778*m, 0, -61); +// rotateX(cos(t)*13°-2.5); + rotateX(((cos(t)*929)>>12)-228); + +// translate(0, -0.7, 0); + translate(0, -2867, 0); + push(); +// scale(0.1, 0.25, 0.1); + scale(410, 1024, 410); + cube(); + pop(); + +// float d = -min(0, cos(t+3.14157/2)); + int d = -min(0, cos(t+6434)); +// translate(0, d*0.15-0.52, d*0.015-0.06); + translate(0, ((d*614)>>12)-2130, ((d*61)>>12)-246); +// rotateX(10°); + rotateX(715); + push(); +// scale(0.1, 0.3, 0.1); + scale(410, 1229, 410); + cube(); + pop(); + +// translate(0, -0.3, 0.1); + translate(0, -1229, 410); + push(); +// scale(0.1, 0.03, 0.2); + scale(410, 123, 819); + cube(); + pop(); + pop(); +} + +void robot(int t) +{ + // head + push(); +// translate(0, 0.71+0.05*abs(sin(t)), 0.04); + translate(0, 2908+((abs(sin(t))*204)>>12), 164); +// rotateX(-5°+10°*abs(cos(t))); + rotateX((-357+715*abs(cos(t)))>>12); +// scale(0.2, 0.2, 0.2); + scale(819, 819, 819); + cube(); + pop(); + + // body + push(); +// translate(0, 0.05*abs(sin(t)), 0); + translate(0, (abs(sin(t))*204)>>12, 0); +// rotateY(2.5°-5°*cos(t)); + rotateY(179-((357*cos(t))>>12)); +// scale(0.3, 0.5, 0.17); + scale(1229, 2048, 696); + cube(); + pop(); + + // left side + arms(t, -1); + legs(t, -1); + + // right side + t += 12868; + arms(t, 1); + legs(t, 1); +} + +// r * cos((x*pi/2)/r) * cos((y*pi/2)/r) - r +int f(int x, int y) +{ + const int r = 25; + return (r * (uber_cos(x) * uber_cos(y))>>18) - (r<<6); +} + +void sonic(int t) +{ + int i = 0; + int y, x; + + const u16 colors[2] = { RGB15(29, 15, 4), RGB15(4, 11, 28) }; + + for ( y = -7*64+t ; y < 6*64+t ; y += 64 ) { + for ( x = -7*64 ; x < 6*64 ; x += 64 ) { + GFX_VERTEX10 = VERTEX(x, f(x, y), y); + GFX_VERTEX10 = VERTEX(x, f(x, y+64), y+64); + GFX_VERTEX10 = VERTEX(x+64, f(x+64, y+64), y+64); + GFX_VERTEX10 = VERTEX(x+64, f(x+64, y), y); + // -4B by putting next two lines at the end of this loop + GFX_COLOR = colors[i&1]; + i++; + } + //i++; + } +} + +#if STDLIB +int main() +#else +void Main() +#endif +{ + int t = 0; + +#if CAMERA + int rX = 0, rrX = 0; + int rY = 0, rrY = 0; + int tX = 0; + int tY = 0; + int tZ = 0; + + touchPosition start; + touchPosition now; +#endif + + // initialize 3D + REG_POWERCNT = POWER_ALL; +#if SAFE + while ( GFX_STATUS & BIT(27) ) + ; + GFX_STATUS |= BIT(29); // clear fifo + GFX_FLUSH = 0; + GFX_CONTROL = 0; +#endif + GFX_CLEAR_DEPTH = 0x7FFF; + + GFX_CONTROL = GL_ANTIALIAS; + GFX_CLEAR_COLOR = 0x3F1F0000; // black, alpha=31, id=63 + + init(); + + // Initialize 2D Engines + REG_DISPCNT = MODE_0_2D + | DISPLAY_BG0_ACTIVE + | ENABLE_3D; + REG_DISPCNT_SUB = MODE_5_2D + | DISPLAY_BG3_ACTIVE + | DISPLAY_SPR_ACTIVE + | DISPLAY_SPR_2D + | DISPLAY_SPR_2D_BMP_256; + + // Init SUB BG0 + //VRAM_C_CR = VRAM_C_SUB_BG | VRAM_ENABLE; + REG_BG3CNT_SUB = BG_BMP16_256x256; + REG_BG3PA_SUB = 1<<8; +#if SAFE + REG_BG3PB_SUB = 0; + REG_BG3PC_SUB = 0; +#endif + REG_BG3PD_SUB = 1<<8; + + // Init sprites to display like a big bitmap background + //VRAM_D_CR = VRAM_D_SUB_SPRITE | VRAM_ENABLE; + int y, x; + u16 * ptr = OAM_SUB; + for ( y = 0 ; y < 3 ; y++ ) { + for ( x = 0 ; x < 4 ; x++ ) { + // attribute 0 + *ptr++ = ATTR0_BMP | (y*64); // attr0 + // attribute 1 + *ptr++ = ATTR1_SIZE_64 | (x*64); // attr1 + // attribute 2 + *ptr++ = ATTR2_ALPHA(15) | (x*8+y*256); + // pad/matrix + *ptr++; + } + } + + while ( 1 ) { + identity(); + if ( t&1 ) { + REG_POWERCNT &= ~POWER_SWAP_LCDS; // main on bottom + VRAM_C_CR = VRAM_ENABLE; + VRAM_D_CR = VRAM_D_SUB_SPRITE | VRAM_ENABLE; + REG_DISPCAPCNT = DCAP_BANK(2) | DCAP_ENABLE | DCAP_SIZE(3); + //rotateX(-t+512); + } else { + REG_POWERCNT |= POWER_SWAP_LCDS; // main on top + VRAM_C_CR = VRAM_C_SUB_BG | VRAM_ENABLE; + VRAM_D_CR = VRAM_ENABLE; + REG_DISPCAPCNT = DCAP_BANK(3) | DCAP_ENABLE | DCAP_SIZE(3); + rotateZ(8192); + rotateX(6144); + translate(0, -4*4096, 9216); + } + +#if 0 +#if CAMERA + rotateX((rX+rrX) * DEGREES_IN_CIRCLE / 360.0); + rotateY((rY+rrY) * DEGREES_IN_CIRCLE / 360.0); + translate(tX, tZ, tY); +#endif +#endif + translate(0, 1024, -4096); + + push(); + translate(0, 128, -11059); + rotateX(-512); + scale(0, 0, 0); + robot(t*402); + pop(); + + push(); + translate(0, 0, -40960); + scale(20480, 8192, 4096); + bg(); + pop(); + + push(); + translate(0, -9216, -20480); + uber_rotateX((rX+rrX)*16); + sonic(-(t*2)&127); + pop(); + + GFX_FLUSH = 0; + t++; + +#if CAMERA + scanKeys(); + + // look around + u16 keys = keysDown(); + if ( keys & KEY_TOUCH ) + touchRead(& start); + + keys = keysUp(); + if ( keys & KEY_TOUCH ) { + rX = rX + rrX; + rY = rY + rrY; + rrX = 0; + rrY = 0; + } + + keys = keysHeld(); + if ( keys & KEY_TOUCH ) { + touchRead(& now); + rrX = now.py - start.py; + rrY = now.px - start.px; + } + + // world move + if ( keys & KEY_UP ) tY += 128; + if ( keys & KEY_DOWN ) tY -= 128; + if ( keys & KEY_LEFT ) tX += 128; + if ( keys & KEY_RIGHT ) tX -= 128; + if ( keys & KEY_L ) tZ += 128; + if ( keys & KEY_R ) tZ -= 128; + + // reset + if ( keys & KEY_SELECT ) { rX = rY = tX = tY = tZ = 0; } +#endif + } + +#if STDLIB + return 0; +#endif +} diff --git a/DisplayListTestCube/source/options.h b/DisplayListTestCube/source/options.h new file mode 100644 index 0000000..086559f --- /dev/null +++ b/DisplayListTestCube/source/options.h @@ -0,0 +1,8 @@ +#ifndef _OPTIONS_H_ +#define _OPTIONS_H_ + +#define STDLIB 1 +#define CAMERA 1 +#define SAFE 0 + +#endif // _OPTIONS_H_ diff --git a/LICENSE b/LICENSE index e69de29..d5dd173 100644 --- a/LICENSE +++ b/LICENSE @@ -0,0 +1,10 @@ +Copyright (c) 2009, Daniel Borges +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/README.md b/README.md index 251da92..bbf6a3e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -bitbox +Bitbox ====== -Bitbox +Source code for the Nintendo DS 4K Intro released at Evoke 2009 which finished 2nd place at the wild platform competition. Also includes an unfinished Win32 port done at the party place and source code for tools used to generate the music (a very simple PSG-sound tracker) and a simple image converter. \ No newline at end of file diff --git a/demo/Makefile b/demo/Makefile new file mode 100644 index 0000000..7febcd7 --- /dev/null +++ b/demo/Makefile @@ -0,0 +1,28 @@ +export PATH := $(PATH):$(DEVKITARM)/bin:../tools/img2bw:../tools/ndsbuilder:../tools + +NAME = $(notdir $(CURDIR)) + +.PHONY: src7/bin src9/bin clean mrproper + +$(NAME).nds: src7/bin src9/bin + @echo -e '\e[1;31mAssembling NDS file...\e[0m' + @ndstool -c $(NAME).unpacked.nds -9 src9/bin -7 src7/bin -g $(NAME) + @ls -l src7/bin + @ls -l src9/bin + @echo -e '\e[1;31mPacking...\e[0m' + @../tools/NDSPack.exe $(NAME).unpacked.nds $(NAME).nds + +src7/bin: + @echo -e '\e[1;31mBuilding arm7 binary...\e[0m' + @make -C src7 + +src9/bin: + @echo -e '\e[1;31mBuilding arm9 binary...\e[0m' + @make -C src9 + +clean: + @make -C src7 clean + @make -C src9 clean + +mrproper: clean + @rm -f $(NAME).nds \ No newline at end of file diff --git a/demo/final/bitbox.nds b/demo/final/bitbox.nds new file mode 100644 index 0000000000000000000000000000000000000000..ea08c27e5cdddb687518824bddec4b4c2655bf80 GIT binary patch literal 4093 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 ) < + |______ /__||__| |________/\_____/__/\__\ + \/ + .------------------´ + | + `-- BitBox ------------------------------------------------------------------. + | + .------------------------------------------------------------ Informations --´ + | 4K Intro for Nintendo DS + | Released at Evoke 2009 + `----------------------------------------------------------------------------. + | + .-------------------------------------------------------------------- MsK` --´ + | Hello Demoscene ! This is my very first demo. I hope that you will like it + | has much as I had doing it. I need to thank Nurykabe, for his awesome tune + | that made me dream this demo and make it, and Hitchhikr, for giving me the + | possibility to make everything fit in so little space. + `----------------------------------------------------------------------------. + | + .------------------------------------------------------------------- Notes --´ + | The packed nds file was reported working on the following linkers : + | - Supercard DS One + | - R4 + `----------------------------------------------------------------------------. + | + .----------------------------------------------------------------- Credits --´ + | MsK` - code & design + | Nurykabe - music + | Hitchhikr - packer + `----------------------------------------------------------------------------. + | + .---------------------------------------------------- http://lywenn.eu.org --´ diff --git a/demo/final/bitbox.safe.nds b/demo/final/bitbox.safe.nds new file mode 100644 index 0000000000000000000000000000000000000000..8be7e6cc6ae201abe94c010c4d2df7b7c2de3309 GIT binary patch literal 10249 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 hiNt*SY|+@G)~GSKe6@kLv_4sG!{{fL~1Cam# literal 0 HcmV?d00001 diff --git a/demo/final/bitbox.zip b/demo/final/bitbox.zip new file mode 100644 index 0000000000000000000000000000000000000000..154b17375bf21a2769dd5f0d6f10b5457f5e5541 GIT binary patch literal 47587 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%0AgJM1 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 ZcC@!pk%xx)&y%6Pj)Sjw-1eWd{{o``n%@8b literal 0 HcmV?d00001 diff --git a/demo/make.bat b/demo/make.bat new file mode 100644 index 0000000..686bea7 --- /dev/null +++ b/demo/make.bat @@ -0,0 +1,2 @@ +d:\sdk\devkitpro\msys\bin\make.exe +pause diff --git a/demo/src7/Makefile b/demo/src7/Makefile new file mode 100644 index 0000000..2358c22 --- /dev/null +++ b/demo/src7/Makefile @@ -0,0 +1,38 @@ +export PATH := $(DEVKITARM)/bin:$(PATH) + +AS = arm-eabi-gcc +CC = arm-eabi-gcc +LD = arm-eabi-ld +OBJCOPY = arm-eabi-objcopy + +ARCH = -mthumb -mthumb-interwork +CFLAGS = -g -Wall -DARM7 -mcpu=arm7tdmi -mtune=arm7tdmi +CFLAGS += -nostartfiles -nostdlib -nodefautlibs +INCLUDE = -Isrc -I$(DEVKITPRO)/libnds/include +LDFLAGS = -g -mno-fpu -specs=ds_arm7.specs +LDFLAGS += -nostartfiles -nostdlib -nodefaultlibs +LDFLAGS += -Wl,-Map,arm7.map +ASFLAGS = -x assembler-with-cpp -I src + +ASMFILES = $(wildcard src/*.s) +CFILES = $(wildcard src/*.c) +OBJS = $(CFILES:.c=.o) $(ASMFILES:.s=.o) + +#TODO : add auto asm dump +.c.o: %.c + @echo Compiling $< + @$(CC) $(ARCH) $(CFLAGS) $(INCLUDE) -o $@ -c $< + +.s.o: %.s + @echo Assembling $< + @$(AS) $(ASFLAGS) -o $@ -c $< + +bin: elf + @$(OBJCOPY) -O binary $< $@ + +elf: $(OBJS) + @echo -e '\e[1;33mLinking...\e[0m' + @$(CC) $(ARCH) $(LDFLAGS) -o $@ $(OBJS) + +clean: + rm -f elf bin $(OBJS) diff --git a/demo/src7/src/main.s b/demo/src7/src/main.s new file mode 100644 index 0000000..d43cea7 --- /dev/null +++ b/demo/src7/src/main.s @@ -0,0 +1,208 @@ + .cpu arm7tdmi + + .section .init + .global _start + .align 2 + .arm + +_start: +#define SAFE 1 +#if SAFE + @; Switch to system mode + mov r0, #0x1F + msr cpsr, r0 +#endif + + @; Switch to thumb + ldr r3, =player + bx r3 + + .align + .pool + + .align 2 + .thumb + .thumb_func +player: +@; ============================ init system ============================= + @; power sound on + mov r1, #1 + ldr r0, reg_powercnt + strh r1, [r0] + + @; init sound, full volume + ldr r1, soundsetup + ldr r0, reg_soundcnt + strh r1, [r0] + + @; set irq handler + ldr r0, reg_irqhandler + ldr r2, irq_handler + str r2, [r0] + + @; set IE = VBLANK +@; ldr r0, reg_interrupts +@; str r1, [r0, #8] + ldr r0, reg_ie + str r1, [r0] + + @; set DISPSTAT = VBLANK IRQ + ldr r3, reg_dispstat + mov r2, #8 + strh r2, [r3] + + @; set IF = ALL +@; mov r3, #1 +@; neg r3, r3 +@; str r3, [r0, #12] + + @; set IME = ON +@; ldr r3, reg_interrupts +@; strh r3, [r3] + +@; ================================ play ================================ + ldr r7, tune + +player_loop: + @; wait for vblank + swi 0x05 + + @;ldr r5, tune + mov r5, r7 + mov r6, #8 + +sch_loop: + @; compute note address (r0) + ldr r3, [r5, #16] + lsl r3, #2 + add r0, r7, r3 + + @; check end of channel +@; ldrh r3, [r0, #2] +@; mov r2, #3 +@; bic r3, r2 +@; beq pass_note_update + + @; check if it's time to play this note + ldr r3, [r0] + ldr r2, [r5] + lsl r3, #19 + lsr r3, #19 + cmp r3, r2 + bne pass_note_update + + @; reset timer + mov r3, #0 + str r3, [r5] + + @; increment note offset + ldr r3, [r5, #16] + add r3, #1 + str r3, [r5, #16] + + @; update volume + ldr r3, [r0] + lsl r3, #14 + lsr r3, #27 + lsl r3, #4 + str r3, [r5, #4] + + @; compute sound frequency register for current channel + ldr r2, reg_sch0cnt + lsl r4, r6, #4 + add r4, r2 + + @; read frequency + ldr r3, [r0] + lsr r1, r3, #18 + + @; freq*8 if wave duty channel + cmp r6, #13 + bgt noise + lsl r1, r1, #3 +noise: + + @; convert frequency to timer value (-0x1000000/freq) + ldr r0, timer_ref + swi 0x09 @; swi divide ! + + @; write frequency + strh r0, [r4, #8] + +pass_note_update: + + @; compute volume's linear envelope + ldr r2, [r5, #4] @; read volume + ldr r3, [r5, #12] @; read decay + sub r2, r3 @; compute envelope + bgt noclamp @; clamp + mov r2, #0 +noclamp: + str r2, [r5, #4] + + @; compute sound control register for current channel + ldr r2, reg_sch0cnt + lsl r0, r6, #4 + add r0, r2 + + @; write sound register + ldr r3, [r5, #4] @; read volume + asr r3, #2 + ldr r2, [r5, #8] @; read duty + orr r3, r2 + ldr r2, sregdef @; read default params (pan=64, psg, enable) + orr r3, r2 + str r3, [r0] + + @; increment timer + ldr r3, [r5] + add r3, #1 + str r3, [r5] + + @; increment channel counter + add r6, r6, #1 + + cmp r6, #16 + beq player_loop + + add r5, r5, #20 + b sch_loop + + .align 2 +reg_dispstat: .word 0x4000004 +@;reg_interrupts: .word 0x4000208 +reg_ie: .word 0x4000210 +reg_powercnt: .word 0x4000304 +reg_sch0cnt: .word 0x4000400 +reg_soundcnt: .word 0x4000500 +reg_irqhandler: .word __irq_vector +irq_handler: .word on_irq +tune: .word tune_data +sregdef: .word 0xE0400000 +timer_ref: .word -0x1000000 +soundsetup: .word (1<<15)|127 + +@; ========================= interrupt handler ========================= + .arm + .align 2 + .text +on_irq: + @ VBLANK_INTR_WAIT_FLAGS |= IRQ_VBLANK + ldr r11, irqflags + ldr r12, [r11] + orr r12, r12, #1 @vbl + str r12, [r11] + @ REG_IF = REG_IF + mov r11, #0x4000000 + ldr r12, [r11, #0x214] + str r12, [r11, #0x214] + @ Return + bx lr + + .align 2 +irqflags: + .word __irq_flags + + .align 2 +tune_data: + .incbin "tune" diff --git a/demo/src7/src/tune b/demo/src7/src/tune new file mode 100644 index 0000000000000000000000000000000000000000..13d9080cc4edd166fe0cab656862fc05ca02c32c GIT binary patch literal 4888 zcmeHKziSjh6rR1?yPG}s;(!UPXmr3P#RUWrQY0`3SD4l+7DCFT5G;}|!Wu}QLQ7$a zSlTJ%x-^2N=?!c;QwaVEes6y4?!|;9#~D3x2VdSdZ|1!>^XAR$gt7crC$^9`EqMTO zD;QD+H8h{mpW;^w!G8|xLef1nUh{#?JD{t>I@X3RropA(eelQ7eN`)U?!gYgKUf&v z2sjG^uA-Wi$0h#6_FdZl!t@I@aJC;AS9{Lidnc!{`T3l$hrzEP41_}NrOQ2Wg?v)} z6zu_|=_~7B*33SsH^_4%5SQ5+J^3M9lH?D2q{tpRMlm5Tv#*M6>?-VY|2}>PH8-aC z@IC2k7i`v^R<+2vns0Ko+Oo3To(uUn`t@wcJ=j}t2jb)KUpaqThl7dv4sBo>|C;ju zm+Px?|3{5acIER>)jp}nXO;b=_fO*b_k!Xs97GG|9;7`VL|mP1|U zlAmP3)4P_-d7gSsW4_G|k6Vr}9_MXnyyq9$|Ks?0z*AQf5_Kg}Z-*Jyn!UQsbBVlW$PWWD;?#%Q)j+mCV{~jyr242M^>Qrr zVI*}o5<0FYf9&OIi|VhyDPorK8toGLoqDmZ6RZj6g6d!6EZ{sOGzSmXjleCy)7qMl zY=1^#-je-j(|Ez+x=k)Pjq&J~?yW02b&1&QB zV%P`iBy%!@j`T-PY9~`C*PTR-Ozn}2iOt_U&Xs-h%ii&>QscyCPpQ#C=iJYY!H-~@ zJ+3!;Nw(4BN5GYIH2$;X?3}!kkBj2ld04;bH~t~XFXoxUwapyLde5(+-^5nW1 + +// Commands +#define CMTXMODE 0x10 +#define CMTXPUSH 0x11 +#define CMTXPOP 0x12 +#define CMTXIDENTITY 0x15 +#define CMTXLOAD4x4 0x16 +#define CMTXLOAD4x3 0x17 +#define CMTXMULT3x3 0x1A +#define CMTXSCALE 0x1B +#define CMTXTRANSLATE 0x1C +#define CCOLOR 0x20 +#define CNORMAL 0x21 +#define CVERTEX 0x24 +#define CPOLYATTR 0x29 +#define CDIFAMB 0x30 +#define CLIGHTVECTOR 0x32 +#define CLIGHTCOLOR 0x33 +#define CBEGIN 0x40 +#define CVIEWPORT 0x60 + +// Parameters +#define PROJECTION 0 +#define MODELVIEW 2 + +#define QUAD 1 + +#define NORMAL(x,y,z) (((x)&0x3FF)|(((y)&0x3FF)<<10)|(((z)&0x3FF)<<20)) +#define VERTEX(x,y,z) \ + (((x)&0x3FF)|(((y)&0x3FF)<<10)|(((z)&0x3FF)<<20)) + +#define DIFAMB(dif,amb) ((dif)|((amb)<<16)) + +#define VIEWPORT(x1,y1,x2,y2) ((x1)|((y1)<<8)|((x2)<<16)|((y2)<<24)) + +// Polygon attributes +#define LIGHT0 BIT(0) +#define POLYFRONT BIT(7) +#define POLYBACK BIT(6) +#define SOLID (31<<16) +#define ALPHA(a) ((a)<<16) +#define WIREFRAME (0<<16) + +// GX FIFO command packer +#define COMMAND(a,b,c,d) \ + (((a)&0xFF)|(((b)&0xFF)<<8)|(((c)&0xFF)<<16)|(((d)&0xFF)<<24)) + +void call_list(u32 * list, int size); + +#define push() MATRIX_PUSH = 0 +#define pop() MATRIX_POP = 1 +#define identity() MATRIX_IDENTITY = 0 +#define swap() GFX_FLUSH = 0 +#define translate(x, y, z) \ + MATRIX_TRANSLATE = x; \ + MATRIX_TRANSLATE = y; \ + MATRIX_TRANSLATE = z +#define scale(x, y, z) \ + MATRIX_SCALE = x; \ + MATRIX_SCALE = y; \ + MATRIX_SCALE = z + +void rotate(int angle, int v); + +#define rotateX(angle) rotate(angle, 1) +#define rotateY(angle) rotate(angle, 2) +#define rotateZ(angle) rotate(angle, 3) + +#endif // _3D_H_ diff --git a/demo/src9/src/3D.s b/demo/src9/src/3D.s new file mode 100644 index 0000000..a2402da --- /dev/null +++ b/demo/src9/src/3D.s @@ -0,0 +1,25 @@ + .arch armv5te + .thumb + .text + .align 2 + .global call_list + .thumb_func + .type call_list, %function +call_list: + ldr r3, dmasrc + str r0, [r3] + ldr r2, fifo + str r2, [r3, #4] + ldr r2, param + orr r1, r2 + str r1, [r3, #8] +busy: + ldr r2, [r3, #8] + cmp r2, #0 + blt busy + bx lr +.L6: + .align 2 +dmasrc: .word 0x40000B0 +fifo: .word 0x4000400 +param: .word (1<<31)|(7<<27)|(1<<22)|(1<<26) @; enable, startfifo, destfix, 32bit diff --git a/demo/src9/src/ds_arm9_crt0.s b/demo/src9/src/ds_arm9_crt0.s new file mode 100644 index 0000000..7882d9e --- /dev/null +++ b/demo/src9/src/ds_arm9_crt0.s @@ -0,0 +1,203 @@ +#include "options.h" +@-------------------------------------------------------------------------------- +@ DS processor selection +@-------------------------------------------------------------------------------- + .arch armv5te + .cpu arm946e-s +@-------------------------------------------------------------------------------- +#define PAGE_4K (0b01011 << 1) +#define PAGE_8K (0b01100 << 1) +#define PAGE_16K (0b01101 << 1) +#define PAGE_32K (0b01110 << 1) +#define PAGE_64K (0b00111 << 1) +#define PAGE_128K (0b10000 << 1) +#define PAGE_256K (0b10001 << 1) +#define PAGE_512K (0b10010 << 1) +#define PAGE_1M (0b10011 << 1) +#define PAGE_2M (0b10100 << 1) +#define PAGE_4M (0b10101 << 1) +#define PAGE_8M (0b10110 << 1) +#define PAGE_16M (0b10111 << 1) +#define PAGE_32M (0b11000 << 1) +#define PAGE_64M (0b11001 << 1) +#define PAGE_128M (0b11010 << 1) +#define PAGE_256M (0b11011 << 1) +#define PAGE_512M (0b11100 << 1) +#define PAGE_1G (0b11101 << 1) +#define PAGE_2G (0b11110 << 1) +#define PAGE_4G (0b11111 << 1) + +#define ITCM_LOAD (1<<19) +#define ITCM_ENABLE (1<<18) +#define DTCM_LOAD (1<<17) +#define DTCM_ENABLE (1<<16) +#define DISABLE_TBIT (1<<15) +#define ROUND_ROBIN (1<<14) +#define ALT_VECTORS (1<<13) +#define ICACHE_ENABLE (1<<12) +#define BIG_ENDIAN (1<<7) +#define DCACHE_ENABLE (1<<2) +#define PROTECT_ENABLE (1<<0) + +#if SAFE + .equ _libnds_argv,0x027FFF70 +#endif + +@-------------------------------------------------------------------------------- + .section ".init" + .global _start +@-------------------------------------------------------------------------------- + .align 4 + .arm +@-------------------------------------------------------------------------------- +_start: +@-------------------------------------------------------------------------------- +#if SAFE + mov r0, #0x04000000 @ IME = 0; + str r0, [r0, #0x208] + +@-------------------------------------------------------------------------------- +@ turn the power on for M3 +@-------------------------------------------------------------------------------- + ldr r1, =0x8203 + add r0,r0,#0x304 + strh r1, [r0] + + ldr r1, =0x00002078 @ disable TCM and protection unit + mcr p15, 0, r1, c1, c0 + +@-------------------------------------------------------------------------------- +@ Protection Unit Setup added by Sasq +@-------------------------------------------------------------------------------- + @ Disable cache + mov r0, #0 + mcr p15, 0, r0, c7, c5, 0 @ Instruction cache + mcr p15, 0, r0, c7, c6, 0 @ Data cache + + @ Wait for write buffer to empty + mcr p15, 0, r0, c7, c10, 4 + + ldr r0, =__dtcm_start + orr r0,r0,#0x0a + mcr p15, 0, r0, c9, c1,0 @ DTCM base = __dtcm_start, size = 16 KB + + mov r0,#0x20 + mcr p15, 0, r0, c9, c1,1 @ ITCM base = 0 , size = 32 MB + +@-------------------------------------------------------------------------------- +@ Setup memory regions similar to Release Version +@-------------------------------------------------------------------------------- + + @------------------------------------------------------------------------ + @ Region 0 - IO registers + @------------------------------------------------------------------------ + ldr r0,=( PAGE_64M | 0x04000000 | 1) + mcr p15, 0, r0, c6, c0, 0 + + @------------------------------------------------------------------------ + @ Region 1 - Main Memory + @------------------------------------------------------------------------ + ldr r0,=( PAGE_4M | 0x02000000 | 1) + mcr p15, 0, r0, c6, c1, 0 + + @------------------------------------------------------------------------ + @ Region 2 - alternate vector base + @------------------------------------------------------------------------ + ldr r0,=( PAGE_4K | 0x00000000 | 1) + mcr p15, 0, r0, c6, c2, 0 + + @------------------------------------------------------------------------ + @ Region 3 - DS Accessory (GBA Cart) + @------------------------------------------------------------------------ + ldr r0,=( PAGE_128M | 0x08000000 | 1) + mcr p15, 0, r0, c6, c3, 0 + + @------------------------------------------------------------------------ + @ Region 4 - DTCM + @------------------------------------------------------------------------ + ldr r0,=__dtcm_start + orr r0,r0,#(PAGE_16K | 1) + mcr p15, 0, r0, c6, c4, 0 + + @------------------------------------------------------------------------ + @ Region 5 - ITCM + @------------------------------------------------------------------------ + ldr r0,=__itcm_start + + @ align to 32k boundary + mov r0,r0,lsr #15 + mov r0,r0,lsl #15 + + orr r0,r0,#(PAGE_32K | 1) + mcr p15, 0, r0, c6, c5, 0 + + @------------------------------------------------------------------------ + @ Region 6 - System ROM + @------------------------------------------------------------------------ + ldr r0,=( PAGE_32K | 0xFFFF0000 | 1) + mcr p15, 0, r0, c6, c6, 0 + + @------------------------------------------------------------------------ + @ Region 7 - non cacheable main ram + @------------------------------------------------------------------------ + ldr r0,=( PAGE_4M | 0x02400000 | 1) + mcr p15, 0, r0, c6, c7, 0 + + @------------------------------------------------------------------------ + @ Write buffer enable + @------------------------------------------------------------------------ + ldr r0,=0b00000010 + mcr p15, 0, r0, c3, c0, 0 +#endif + + @------------------------------------------------------------------------ + @ DCache & ICache enable + @------------------------------------------------------------------------ + ldr r0,=0b01000010 +#if SAFE + mcr p15, 0, r0, c2, c0, 0 +#endif + mcr p15, 0, r0, c2, c0, 1 + +#if SAFE + @------------------------------------------------------------------------ + @ IAccess + @------------------------------------------------------------------------ + ldr r0,=0x36636633 + mcr p15, 0, r0, c5, c0, 3 + + @------------------------------------------------------------------------ + @ DAccess + @------------------------------------------------------------------------ + ldr r0,=0x36333633 + mcr p15, 0, r0, c5, c0, 2 +#endif + + @------------------------------------------------------------------------ + @ Enable ICache, DCache, ITCM & DTCM + @------------------------------------------------------------------------ + mrc p15, 0, r0, c1, c0, 0 +#if SAFE + ldr r1,= ITCM_ENABLE | DTCM_ENABLE | ICACHE_ENABLE | DCACHE_ENABLE | PROTECT_ENABLE +#else + ldr r1, =ICACHE_ENABLE|DCACHE_ENABLE|PROTECT_ENABLE +#endif + orr r0,r0,r1 + mcr p15, 0, r0, c1, c0, 0 + +#if SAFE + mov r0, #0x12 @ Switch to IRQ Mode + msr cpsr, r0 + ldr sp, =__sp_irq @ Set IRQ stack + + mov r0, #0x13 @ Switch to SVC Mode + msr cpsr, r0 + ldr sp, =__sp_svc @ Set SVC stack + + mov r0, #0x1F @ Switch to System Mode + msr cpsr, r0 + ldr sp, =__sp_usr @ Set user stack +#endif + + ldr r3, =Main + blx r3 @ jump to user code \ No newline at end of file diff --git a/demo/src9/src/init.s b/demo/src9/src/init.s new file mode 100644 index 0000000..6c35f9f --- /dev/null +++ b/demo/src9/src/init.s @@ -0,0 +1,52 @@ + .arch armv5te + .thumb + + .global Init + .text + .thumb_func + .type Init, %function +Init: + @; POWERCNT = POWER_ALL + ldr r0, =0x04000304 + ldr r1, =0x20F + strh r1, [r0] + + @; GFX_CLEAR_COLOR = black, opaque, id=63 + ldr r0, =0x04000350 + ldr r1, =0x3F1F0000 + str r1, [r0] + + @; GFX_CLEAR_DEPTH = 0x7FFF + ldr r1, =0x7FFF + strh r1, [r0, #4] + + @; DISPCNT = MODE 0, BG0, 3D + ldr r0, =0x04000000 + ldr r1, =0x10000|(1<<8)|(1<<3) + str r1, [r0] + + @; GFX_CONTROL = ANTIALIAS, BLEND + ldr r0, =0x04000060 + ldr r1, =(1<<3)|(1<<4) + strh r1, [r0] + + @; DISPCNT_SUB = MODE 5, BG3, SPR, SPR_2D_BMP_256 + ldr r0, =0x04001000 + ldr r1, =0x10005|(1<<11)|(1<<12)|(2<<4) + str r1, [r0] + + @; BG3CNT_SUB = BMP16 256x256 + ldr r1, =0x4084 + strh r1, [r0, #0x0E] + + @; BG3PA_SUB = 256 + ldr r1, =256 + strh r1, [r0, #0x30] + + @; BG3PD_SUB = 256 + strh r1, [r0, #0x36] + + bx lr + + .align 2 + .pool diff --git a/demo/src9/src/main.c b/demo/src9/src/main.c new file mode 100644 index 0000000..67fe92d --- /dev/null +++ b/demo/src9/src/main.c @@ -0,0 +1,573 @@ +#include + +#include "options.h" +#include "trig.h" +#include "3D.h" + +#define FADES 1 // ~128 bytes... (packed) + +#if FADES +#define BRIGHT (1<<14) +#define DARK (2<<14) + +int fade_current = 31 << 2; // starts white +int fade_target = 16 << 2; +#endif + +u32 cubelist[] = +{ + COMMAND(CDIFAMB, CBEGIN, CNORMAL, CVERTEX), + DIFAMB(RGB15(16, 16, 16), RGB15(8, 8, 8)), + QUAD, + NORMAL(0, 512, 0), + VERTEX(-64,-64,-64), + + COMMAND(CVERTEX, CVERTEX, CVERTEX, CNORMAL), + VERTEX( 64,-64,-64), + VERTEX( 64,-64, 64), + VERTEX(-64,-64, 64), + NORMAL(0, 511, 0), + + COMMAND(CVERTEX, CVERTEX, CVERTEX, CVERTEX), + VERTEX(-64, 64,-64), + VERTEX(-64, 64, 64), + VERTEX( 64, 64, 64), + VERTEX( 64, 64,-64), + + COMMAND(CNORMAL, CVERTEX, CVERTEX, CVERTEX), + NORMAL(512, 0, 0), + VERTEX(-64,-64,-64), + VERTEX(-64,-64, 64), + VERTEX(-64, 64, 64), + + COMMAND(CVERTEX, CNORMAL, CVERTEX, CVERTEX), + VERTEX(-64, 64,-64), + NORMAL(511, 0, 0), + VERTEX( 64,-64,-64), + VERTEX( 64, 64,-64), + + COMMAND(CVERTEX, CVERTEX, CNORMAL, CVERTEX), + VERTEX( 64, 64, 64), + VERTEX( 64,-64, 64), + NORMAL( 0, 0, 512), + VERTEX(-64,-64,-64), + + COMMAND(CVERTEX, CVERTEX, CVERTEX, CNORMAL), + VERTEX(-64, 64,-64), + VERTEX( 64, 64,-64), + VERTEX( 64,-64,-64), + NORMAL( 0, 0, 511), + + COMMAND(CVERTEX, CVERTEX, CVERTEX, CVERTEX), + VERTEX(-64,-64, 64), + VERTEX( 64,-64, 64), + VERTEX( 64, 64, 64), + VERTEX(-64, 64, 64), +}; +#define cube() call_list(cubelist, sizeof(cubelist)/sizeof(u32)) + +u32 initlist[] = +{ + COMMAND(CVIEWPORT, CMTXMODE, CMTXLOAD4x4, 0), + VIEWPORT(0, 0, 255, 191), // full screen + PROJECTION, // matrix mode + // Projection matrix Perspective(fov=50°, near=0.1, far=40, ratio=1.33) + 6587, 0, 0, 0, + 0, 8783, 0, 0, + 0, 0, -4116, -4096, + 0, 0, -821, 0, + + COMMAND(CMTXMODE, CMTXIDENTITY, CLIGHTVECTOR, CLIGHTCOLOR), + MODELVIEW, // matrix mode + NORMAL(-96, -144, -482), // light vector + RGB15(31, 31, 31), // light color +}; +#define init() call_list(initlist, sizeof(initlist)/sizeof(u32)) + +void rotate(int angle, int v) +{ + int s = sin(angle); + int c = cos(angle); + + if ( v == 1 ) { + MATRIX_MULT3x3 = 1<<12; + MATRIX_MULT3x3 = 0; + MATRIX_MULT3x3 = 0; + + MATRIX_MULT3x3 = 0; + MATRIX_MULT3x3 = c; + MATRIX_MULT3x3 = s; + + MATRIX_MULT3x3 = 0; + MATRIX_MULT3x3 = -s; + MATRIX_MULT3x3 = c; + } else if ( v == 2 ) { + MATRIX_MULT3x3 = c; + MATRIX_MULT3x3 = 0; + MATRIX_MULT3x3 = -s; + + MATRIX_MULT3x3 = 0; + MATRIX_MULT3x3 = 1<<12; + MATRIX_MULT3x3 = 0; + + MATRIX_MULT3x3 = s; + MATRIX_MULT3x3 = 0; + MATRIX_MULT3x3 = c; + } else { + MATRIX_MULT3x3 = c; + MATRIX_MULT3x3 = s; + MATRIX_MULT3x3 = 0; + + MATRIX_MULT3x3 = -s; + MATRIX_MULT3x3 = c; + MATRIX_MULT3x3 = 0; + + MATRIX_MULT3x3 = 0; + MATRIX_MULT3x3 = 0; + MATRIX_MULT3x3 = 1<<12; + } +} + +void arms(int t, int m) +{ + push(); +// translate(0.24f*m, 0.4f, 0); + translate(983*m, 1638, 0); +// rotateZ(30°*m); + rotateZ(2145*m); +// rotateX(cos(t)*20°+180°); + rotateX(((cos(t)*1430)>>12)+12868); +// translate(0, 0.3, 0); + translate(0, 1229, 0); + push(); +// scale(0.1, 0.3, 0.1); + scale(410, 1229, 410); + cube(); + pop(); + +// translate(0, 0.22, 0); + translate(0, 901, 0); +// rotateY(abs(cos(t))*16*m); + int act = cos(t)*1144; + if ( act < 0 ) + act = -act; + rotateY((act>>12)*m); +// rotateX(100°); + rotateX(7149); +// rotateZ(165°*m); + rotateZ(11796*m); +// translate(0, 0.21, 0); + translate(0, 860, 0); + push(); +// scale(0.09, 0.27, 0.09); + scale(369, 1106, 369); + cube(); + pop(); + pop(); +} + +void legs(int t, int m) +{ + push(); +// translate(0.19*m, 0, -0.015); + translate(778*m, 0, -61); +// rotateX(cos(t)*13°-2.5); + rotateX(((cos(t)*929)>>12)-228); // 929->1024 = -12 bytes ! + +// translate(0, -0.7, 0); + translate(0, -2867, 0); + push(); +// scale(0.1, 0.25, 0.1); + scale(410, 1024, 410); + cube(); + pop(); + +// float d = -min(0, cos(t+3.14157/2)); + int d = -cos(t+6434); + if ( d < 0 ) + d = 0; +// translate(0, d*0.15-0.52, d*0.015-0.06); + translate(0, ((d*512)>>12)-2130, ((d*61)>>12)-246); +// rotateX(10°); + rotateX(715); + push(); +// scale(0.1, 0.3, 0.1); + scale(410, 1229, 410); + cube(); + pop(); + +// translate(0, -0.3, 0.1); + translate(0, -1229, 410); + push(); +// scale(0.1, 0.03, 0.2); + scale(410, 123, 819); + cube(); + pop(); + pop(); +} + +void robot(int t, int T) +{ +#define robot_fall_speed 2048 +#define robot_start 40 + t *= 402; + + // ast = |sin(t)| + int ast = sin(t); + if ( ast < 0 ) + ast = -ast; + + // act = |cos(t)| + int act = cos(t); + if ( act < 0 ) + act = -act; + + int fall; + + // head + push(); +// translate(0, 0.71+0.05*abs(sin(t)), 0.04); + fall = (robot_start+88)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, 2908+((ast*204)>>12)+fall, 164); +// rotateX(-5°+10°*abs(cos(t))); + rotateX((-357+715*act)>>12); +// scale(0.2, 0.2, 0.2); + scale(819, 819, 819); + cube(); + pop(); + + // body + push(); +// translate(0, 0.05*abs(sin(t)), 0); + fall = (robot_start+48)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, ((ast*204)>>12)+fall, 0); +// rotateY(2.5°-5°*cos(t)); + rotateY(179-((357*cos(t))>>12)); +// scale(0.3, 0.5, 0.17); + scale(1229, 2048, 696); + cube(); + pop(); + + // left side + push(); + fall = (robot_start+56)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, fall, 0); + arms(t, -1); + pop(); + + push(); + fall = (robot_start+8)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, fall, 0); + legs(t, -1); + pop(); + + // right side + t += 12868; + push(); + fall = (robot_start+64)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, fall, 0); + arms(t, 1); + pop(); + + push(); + fall = (robot_start+24)*robot_fall_speed - T*robot_fall_speed; + if ( fall < 0 ) + fall = 0; + translate(0, fall, 0); + legs(t, 1); + pop(); +} + +// r * cos((x*pi/2)/r) * cos((y*pi/2)/r) - r +// returns a fixed point altitude value in fx.6 +int f(int x, int y) +{ + const int r = 32; +// const int _r = (int)((0.5f/(float)r)*64.0f); // == 1 ... +// x = (x*_r); +// y = (y*_r); + return ((r * (uber_cos(x) * uber_cos(y))>>18)) - (r<<6); +} + +void sonic(int t) +{ + int i = 0; + int y, x; + + rotateX(-1024); + + if ( t < 256 ) + t = 0; + else + t = -(t*2)&127; + + for ( y = -7*64+t ; y < 6*64+t ; y += 64 ) { + for ( x = -7*64 ; x < 6*64 ; x += 64 ) { + GFX_VERTEX10 = VERTEX(x, f(x, y), y); + GFX_VERTEX10 = VERTEX(x, f(x, y+64), y+64); + GFX_VERTEX10 = VERTEX(x+64, f(x+64, y+64), y+64); + GFX_VERTEX10 = VERTEX(x+64, f(x+64, y), y); + GFX_COLOR = (i&1) ? RGB15(29, 15, 4) : RGB15(4, 11, 28); + i++; + } + //i++; + } +} + +void spot(int c1, int c2, int w, int h) +{ + GFX_BEGIN = QUAD; + GFX_COLOR = c1; + GFX_VERTEX10 = VERTEX(-64, h, 0); + GFX_VERTEX10 = VERTEX( 64, h, 0); + GFX_COLOR = c2; + GFX_VERTEX10 = VERTEX( 64+w, 64, 0); + GFX_VERTEX10 = VERTEX(-64-w, 64, 0); +} + +void robot_solo(int t) +{ + int T = t; + if ( t < 256 ) { + // stopped for the intro + t = 0; + } else if ( t > 1152 ) { + // tracted by the flying saucer + int y; + y = (t-1152)*58; + if ( y > 22528 ) + y = 22528; + translate(0, y, 0); + y = (8*4096-y)/8; + scale(y, y, y); + t = 0; + } + robot(t, T); +} + +int jump(int t) +{ + if ( t < 512 ) + return 0; + t = t%64; + t = t*8-384+128; + t = 3072-t*t; + if ( t < 0 ) + return 0; + return t; +} + +void robot_clone_wars(int t) +{ +#define SPACE_FLOOR 1 +#define FINAL_WALK_ON 1 +#define LINES 6 +#define SPACING 16384 + int i, j; + + //rotateX(2560); + if ( (t & 1) == 0 ) { // different camera for different screens + translate(5120, 44032, 20480); + rotateZ(1792); + } else { + rotateX(2560); + } + +#if SPACE_FLOOR + push(); + translate(0, -6144, -4096*4); + rotateX(-12867/2); + scale(4096*16, 4096*10, 4096*10); + spot(RGB15(0, 7, 3), RGB15(0, 2, 1), 0, -64); + pop(); +#endif + +#if SPACE_FLOOR + int z = t*256-16384; +#else + int z = t*256*8-16384*8; +#endif + if ( z > 0 ) + z = 0; + + int lines = (t-192+8)/8; + + if ( lines < 2 ) + lines = 2; + else if ( lines > LINES ) + lines = LINES; + + for ( i = 1 ; i < lines ; i++ ) { + translate(0, 0, -8192); + for ( j = 0 ; j < i ; j++ ) { + if ( j == 2 && i == 5 ) + continue; + push(); + translate(j * SPACING - ((i-1)*SPACING)/2, jump(t-i*4)+z, 0); +#if FINAL_WALK_ON + if ( t < 512 ) + robot(8, 256); + else + robot(8+t-512, 256); +#else + robot(8); +#endif + pop(); + } + } +} + +void background(int t) +{ +#if FADES + if ( t == 1536 ) { + fade_current = 0; + fade_target = 16<<2; + } +#endif + if ( t < 1536 ) + spot(RGB15(31, 31, 31), RGB15(12, 12, 31), 0, -64); + else + spot(RGB15(1, 5, 2), RGB15(0, 0, 0), 0, -64); +} + +void fs(int t) +{ + static int h[9] = { 64, 58, 51, 32, 26, 19, 10, 1, 0 }; + static int r[9] = { 0, 819, 1229, 1638, 3276, 4096, 3276, 2048, 0 }; + + int y = 1024*32-t*32; + if ( y < 0 ) + y = 0; + translate(y, y, -y); + + GFX_COLOR = RGB15(15, 15, 15); + int i, j; + for ( i = 0 ; i < 8 ; i++ ) { + for ( j = 0 ; j < 8192 ; j += 512 ) { + GFX_NORMAL = VERTEX((uber_cos(j) * r[i])>>18, h[i], (uber_sin(j) * r[i])>>18); + GFX_VERTEX10 = VERTEX((uber_cos(j) * r[i])>>18, h[i], (uber_sin(j) * r[i])>>18); + GFX_VERTEX10 = VERTEX((uber_cos(j+512) * r[i])>>18, h[i], (uber_sin(j+512) * r[i])>>18); + GFX_VERTEX10 = VERTEX((uber_cos(j+512) * r[i+1])>>18, h[i+1], (uber_sin(j+512) * r[i+1])>>18); + GFX_VERTEX10 = VERTEX((uber_cos(j) * r[i+1])>>18, h[i+1], (uber_sin(j) * r[i+1])>>18); + } + } +} + +void fs_beam(int t) +{ + int h = 64+8+384-t*4; + if ( h < 0 ) + h = 0; + GFX_POLY_FORMAT = LIGHT0|POLYFRONT|ALPHA(15); + spot(RGB15(0, 31, 4), RGB15(0, 31, 4), -32, h-384); +} + +typedef struct { + void (*draw)(int time); + s16 start, end; + s8 ty, tz; + s8 s; +} Drawable; + +Drawable demo[] = +{ + // draw start, end ty, tz scale + { robot_solo, 0, 1536, 1, -15, 4 }, + { sonic, 0, 1536, -8, -24, 4 }, + { fs, 0, 1536, 21, -15, 4 }, + { robot_clone_wars, 1536, 2576, -4, -16, 2 }, + { background, 0, 2576, 9, -44, 32 }, + { fs_beam, 1024, 1536, 18, -13, 4 }, +}; + +void Main() +{ + extern void Init(); + Init(); + init(); + + // Init sprites to display like a big bitmap background + //VRAM_D_CR = VRAM_D_SUB_SPRITE | VRAM_ENABLE; + int y, x; + u16 * ptr = OAM_SUB; + for ( y = 0 ; y < 3 ; y++ ) { + for ( x = 0 ; x < 4 ; x++ ) { + // attribute 0 + *ptr++ = ATTR0_BMP | (y*64); + // attribute 1 + *ptr++ = ATTR1_SIZE_64 | (x*64); + // attribute 2 + *ptr++ = ATTR2_ALPHA(15) | (x*8+y*256); + // pad (matrix) + ptr++; + } + } + + int t = 0; + + while ( t < 2576 ) { +#if FADES + if ( fade_current < fade_target ) + fade_current++; + else if ( fade_current > fade_target ) + fade_current--; + + int v = 0; + if ( fade_current < (16 << 2) ) + v = DARK | (16 - (fade_current >> 2)); + else if ( fade_current > (16 << 2) ) + v = BRIGHT | ((fade_current >> 2) - 16); + + REG_MASTER_BRIGHT = v; + REG_MASTER_BRIGHT_SUB = v; +#endif + + identity(); + + // Dual screen 3D + if ( t&1 ) { + REG_POWERCNT &= ~POWER_SWAP_LCDS; // main on bottom + VRAM_C_CR = VRAM_ENABLE; + VRAM_D_CR = VRAM_D_SUB_SPRITE | VRAM_ENABLE; + REG_DISPCAPCNT = DCAP_BANK(2) | DCAP_ENABLE | DCAP_SIZE(3); + } else { + REG_POWERCNT |= POWER_SWAP_LCDS; // main on top + VRAM_C_CR = VRAM_C_SUB_BG | VRAM_ENABLE; + VRAM_D_CR = VRAM_ENABLE; + REG_DISPCAPCNT = DCAP_BANK(3) | DCAP_ENABLE | DCAP_SIZE(3); + translate(0, -5*4096, 0); + } + + // Reset polygon attributes + GFX_POLY_FORMAT = LIGHT0|POLYFRONT|SOLID; + + // Lightweight 3D player -olol + int i; + for ( i = 0 ; i < sizeof(demo)/sizeof(Drawable) ; i++ ) { + if ( t >= demo[i].start && t < demo[i].end ) { + push(); + translate(0, demo[i].ty*1024, demo[i].tz*1024); + scale(demo[i].s*1024, demo[i].s*1024, demo[i].s*1024); + demo[i].draw(t-demo[i].start); + pop(); + } + } + + t++; + swap(); + } + + extern void seeya(); + seeya(); +} diff --git a/demo/src9/src/msg b/demo/src9/src/msg new file mode 100644 index 0000000000000000000000000000000000000000..2a75a45d606db4e5891322638112116dc6d0ede9 GIT binary patch literal 32 ecmZQzfPi{NMtMd?Mg|TDU~qJH^$bjOWB>pgq5|On literal 0 HcmV?d00001 diff --git a/demo/src9/src/msg.s b/demo/src9/src/msg.s new file mode 100644 index 0000000..0536485 --- /dev/null +++ b/demo/src9/src/msg.s @@ -0,0 +1,68 @@ + .arch armv5te + .align 2 + .text + .thumb + .global seeya + .thumb_func + .type seeya, %function +seeya: + @; dispcnt = mode 0, bg0 active + ldr r0, =0x04000000 + ldr r1, =0x10000 | (1<<8) + str r1, [r0] + + @; bg0cnt = tilebase=1, mapbase=0 + ldr r1, =(1<<2) + str r1, [r0, #8] + + @; scroll text horizontally + ldr r1, =256-108 + strh r1, [r0, #0x10] + + @; scroll text vertically + ldr r1, =256-92 + strh r1, [r0, #0x12] + + @; enable vram A in bg mode @0x06000000 + ldr r0, =0x04000240 + ldr r1, =(1<<7)|1 + str r1, [r0] + + @; bg palette color 1 = white + ldr r0, =0x05000002 + ldr r1, =(1<<15)-1 + strh r1, [r0] + + @; fill map + ldr r0, =0x06000000 + mov r1, #0 +textloop: + strh r1, [r0] + add r0, #2 + add r1, #1 + cmp r1, #(msgend-msg)/8 + bne textloop + + @; unpack tiles directly to vram + ldr r0, =msg + ldr r1, =0x06004000 + ldr r2, =unpackinfo + swi 0x10 + + @; infinite wait (interrupts aren't enabled ;) + swi 0x05 + + .align 2 + .pool + + .align 2 +msg: + .incbin "msg" +msgend: + + .align 2 +unpackinfo: + .hword msgend-msg + .byte 1 + .byte 4 + .word 0 diff --git a/demo/src9/src/options.h b/demo/src9/src/options.h new file mode 100644 index 0000000..0eeb9de --- /dev/null +++ b/demo/src9/src/options.h @@ -0,0 +1,8 @@ +#ifndef _OPTIONS_H_ +#define _OPTIONS_H_ + +#define STDLIB 0 +#define CAMERA 0 +#define SAFE 0 + +#endif // _OPTIONS_H_ diff --git a/demo/src9/src/trig.c b/demo/src9/src/trig.c new file mode 100644 index 0000000..92f10a6 --- /dev/null +++ b/demo/src9/src/trig.c @@ -0,0 +1,12 @@ +#include "trig.h" +#include + +int uber_sin(int x) +{ + // TODO this may be simplified + x = 4096 - (x & 0x1FFF); + int ax = x; + if ( ax < 0 ) + ax = -ax; + return 4 * x - ((4 * x * ax) >> 12); +} \ No newline at end of file diff --git a/demo/src9/src/trig.h b/demo/src9/src/trig.h new file mode 100644 index 0000000..c57c50b --- /dev/null +++ b/demo/src9/src/trig.h @@ -0,0 +1,17 @@ +#ifndef _TRIG_H_ +#define _TRIG_H_ + +// approximation of sin with pi=4096 +// +// pi-(x mod 2pi) then +// 4.x - 4.x.|x| +int uber_sin(int x); +#define uber_cos(x) uber_sin(x + 0x800) + +// Conversion from old cos/sin to new uber cos/sin +// The old was working with real value of pi in fixed point 12 (pi = 12867) +// while the new one uses pi = 4096 +#define sin(x) uber_sin((((x) * 325) >> 10)) +#define cos(x) uber_cos((((x) * 325) >> 10)) + +#endif // _TRIG_H_ \ No newline at end of file diff --git a/gfx/abc.lz77 b/gfx/abc.lz77 new file mode 100644 index 0000000000000000000000000000000000000000..4b7447916603930dc027df95dd6efc1f15ae1f4e GIT binary patch literal 192 zcmV~$F-ikL6b9h`ErMGJ^B0R-`dlHcLo5~+Av1(1Q<()}s}QzIxn&fD*Lj5;Aw?jN zQ{(^^X+46F9Ki3R7gT^3ixFAOF^Q2GOcnw$I^3#rbUS}7y!*r$c+&bI&s7itMau&l z=nLzV5|f1CMO)YE!_^!t=2_IpL70UU5i*EkrkN2hD@&w=?EI%pi literal 0 HcmV?d00001 diff --git a/gfx/abc.png b/gfx/abc.png new file mode 100644 index 0000000000000000000000000000000000000000..e5180e1ceb04ec95c1f9a94d8a16cad7918a2092 GIT binary patch literal 490 zcmVPx#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOQ5 z5d|#r@u7eK000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0003+Nkl95k#n9>?s60&9vxo+1-exZPTY&bFCLGh9%|Q)nvKT+IA|+hb#xTbZZP$!3s(lA zysIknDCaFW0%%DOtud*fG54Tw3yuTQXAAGL4=d&}OZLX&Hdn+*mpyM8HCt86U@~I9 zYcjGmbL_l}taEe!2%6hN`#B^YLwOY%k5Jy-H79mTw3njhJ~*KKq=ChwpNI052M(@= ztGvG3sLln)awgj65)}vDiSiq=j&D|l;qa*Q;RxD2zpy)zR}Ra=Dpf~es^nR;*4iE- zarYLm-Fv2fBPvF+I`wxgZH@W#FcEqWXUAb^Uhw(K<^BqnyMH|I0&zIpivpc^C|^bX guXgA?gF}6M0I(Ao8!*6vlK=n!07*qoM6N<$f)SL%Z~y=R literal 0 HcmV?d00001 diff --git a/gfx/abc.raw b/gfx/abc.raw new file mode 100644 index 0000000000000000000000000000000000000000..7cd179eb3e94e3ec1f08bfb32ef16eaf1cb26258 GIT binary patch literal 304 zcmXv}u?@p83{#2>-r6At6nUf)f(#mcg1=}cy8{7ZtF2zuNjJEycS=&-17|mm5vBhx?cQ41vhpXU;=auDOWv{d4mF46P)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RT2pJ~|6e1oSUjYTW zRSr(vi^DG-kE0%H*N&Qv#{oEKD_?bV6wz)l^{ES22BEyGD)T7kEjR*bNe`_tsh~0U zpl}P01JY*;@3Ido<}yq6#^W|u#7LJtZy7aPRmxy8V!mrKvNdz;yo;=JbN>jM+e7;~ zBpyR~6&jCF-rY4Pc1pCDqUJt0p!}qP#iO5x@|6b;u7<0;zT2qI1;=tG+UF7#2i}SD z8?ugXR)yj4sPo|n+C9IpJCRoo%fl*FM`5buS+v&L9wKq~7O>rWrhX$TMzT8fcP(v= z`SdUmdJkvEVQ60P`O4+~3YWWoJnsT=INXZ@op>l;MgFgL=skl&eS8406B!#Yz=D$i O0000rQi>o<=LI}~2M`3$VryY# zEqDRn<1df_flL*NI?Po$fzggY#vXm~p8YL!iHApwfr;cJ=Y&v}OfqTn~q!^2X+?^QKos)S9l0cr;9yzyJO1YP)MTb0 zO;+3evjknIhl)8fXc%O$xczQB7}mwdtaK>M{#O|LExoAhs|lxCGaJHogvz|y)zcBZ>IfqxO^3CDy&@Yo*L9RkJomc<Ndd?aLGGr=KgC%PT!SYyL{- znbYilHdiiNojUT+z?t^~d+FBw^L!@iJ3UayY@1f)v*^nn6HjSA_W6^heQdNXKJ)m2 zyv{4@qkC@lrBnqyaY&xR-G0K#Yfj_C1*Kij4?St#;kyZcQ=m%lnI^8d=b8?G(i jPiD$K{h{|goy}fftK@_AwU%4JuxIde^>bP0l+XkK1r)}^ literal 0 HcmV?d00001 diff --git a/gfx/abc4.raw b/gfx/abc4.raw new file mode 100644 index 0000000000000000000000000000000000000000..618600f03891919827aeae5605994e51800da51e GIT binary patch literal 240 zcmXX>u?>JQ3^RzK8w?zPc!WlXp(7`722)P4I3iTYK}c!BdX{FN zJcwUfz)Sl|2dd$|tne85T5HmAUhRGYGRaR?l=b~s+s9_sO8w9E^PU&`T9nI)%%NC! V&LtDbZ7I{3UP`Az_@%xi&kv=pDyjeg literal 0 HcmV?d00001 diff --git a/gfx/cube.cpp b/gfx/cube.cpp new file mode 100644 index 0000000..02339e5 --- /dev/null +++ b/gfx/cube.cpp @@ -0,0 +1,64 @@ +// Commands +#define CBEGIN 0x40 +#define CCOLOR 0x20 +#define CVERTEX 0x24 +#define CNORMAL 0x21 + +// Parameters +#define QUAD 0x1 +#define QUADSTRIP 0x3 +#define GRAY RGB15(15, 15, 15) +#define NORMAL(x,y,z) () // (1bit sign + 9bit fractional part) +#define VERTEX(x,y,z) () // (signed, with 6bit fractional part) + +#define COMMAND(a,b,c,d) \ + ((a)&0xFF|(((b)&0xFF)<<8)|(((c)&0xFF)<<16)|(((d)&0xFF)<<24)) + +u32 cubelist[] = +{ + COMMAND(CBEGIN, CCOLOR, CNORMAL, CVERTEX), + QUADSTRIP, + GRAY, + NORMAL( 0,-1, 0), + VERTEX(-1,-1,-1), + COMMAND(CVERTEX, CVERTEX, CVERTEX, CNORMAL), + VERTEX( 1,-1,-1), + VERTEX(-1,-1, 1), + VERTEX( 1,-1, 1), + NORMAL( 0, 0, 1), + COMMAND(CVERTEX, CVERTEX, CNORMAL, CVERTEX), + VERTEX(-1, 1, 1), + VERTEX( 1, 1, 1), + NORMAL( 0, 1, 0), + VERTEX(-1, 1,-1), + COMMAND(CVERTEX, CNORMAL, CVERTEX, CVERTEX), + VERTEX( 1, 1,-1), + NORMAL( 0, 0,-1), + VERTEX(-1,-1,-1), + VERTEX( 1,-1,-1), + COMMAND(CBEGIN, CNORMAL, CVERTEX, CVERTEX), + QUAD, + NORMAL( 1, 0, 0), + VERTEX( 1,-1,-1), + VERTEX( 1,-1, 1), + COMMAND(CVERTEX, CVERTEX, CNORMAL, CVERTEX), + VERTEX( 1, 1, 1), + VERTEX( 1, 1,-1), + NORMAL(-1, 0, 0), + VERTEX(-1,-1,-1), + COMMAND(CVERTEX, CVERTEX, CVERTEX, 0), + VERTEX(-1,-1, 1), + VERTEX(-1, 1, 1), + VERTEX(-1, 1,-1), +}; + +inline void cube() +{ + extern u32 cubelist[]; + + DMA_SRC(0) = cubelist; + DMA_DEST(0) = 0x4000400; + DMA_CR(0) = DMA_FIFO | (sizeof(cubelist)/sizeof(u32)); + while ( DMA_CR(0) & DMA_BUSY ) + ; +} diff --git a/gfx/end.png b/gfx/end.png new file mode 100644 index 0000000000000000000000000000000000000000..f58e95fb1797325c2b25442745f2a6ef151f0c64 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!2~21Oj_3tq!^2X+?^QKos)S9vL>4nJ za0`PlBg3pY5H=O_M7Y?qMSTo>bYq^A;}Wgh!W@g+}zZ>5(ej@)Wnk16ovB4 zk_-iRPv3y>Mm}+%q7Y9P#}JM4cPAX=0$S<3{qKMK+Y37kdY437xAH$1`_P_|c5sRd z2g8eNT~8`(qbm?$lNO=GN literal 0 HcmV?d00001 diff --git a/gfx/fin.png b/gfx/fin.png new file mode 100644 index 0000000000000000000000000000000000000000..408d75864f249c6d2c1aa20432ac5167b1bf420b GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!2~21Oj_3tq!^2X+?^QKos)S9vL>4nJ za0`PlBg3pY5H=O_M7Zd{0dUyx5YexLXst}5hc#~xw)x%B@E6*sfi`2DGKG8 zB^e6tp1uL$jeO!jMgE>Hjv*T7?@l_%1+>z6```cew-MpBW$=Uk1v6Dc zg)|u!#A;4bww`wBsN2GumHpxg)ivu^dzopr0RKQpRsaA1 literal 0 HcmV?d00001 diff --git a/gfx/font.bin b/gfx/font.bin new file mode 100644 index 0000000000000000000000000000000000000000..af083497c4c1cc3804cca612d715329fb2eece97 GIT binary patch literal 96 zcmXYp!3}^=2t&)wt%Mj4938<)8aDTRwV{P3FSxs_N{(=*#l5eN>8b6L>Nxwl;r{L! PW@JFnwRsW3$U<*C2Qm{K literal 0 HcmV?d00001 diff --git a/gfx/font.lz77 b/gfx/font.lz77 new file mode 100644 index 0000000000000000000000000000000000000000..5179d705a1f4eb0077c8cd35c1d048c2dd1dd053 GIT binary patch literal 20 UcmWegU|_IkVEDiYg93~U05*lj2~(OM6GM>dEM`?!Hl~KpZK4vtH)Oq7s=}swa@G#M%H(ZtW#x~$%sIv> zzcc!+x9O$!v)cD;9Tu8NlX71-uYmFkN>Dj)i!OZjx+B@>|Q7(8A5T-G@yGywqI +#include +#include +#include + +void quad(float x0, float y0, float z0, + float x1, float y1, float z1, + float x2, float y2, float z2, + float x3, float y3, float z3) +{ + float vx1 = x1 - x0; + float vx2 = x2 - x0; + float vy1 = y1 - y0; + float vy2 = y2 - y0; + float vz1 = z1 - z0; + float vz2 = z2 - z0; + glNormal3f(vy1 * vz2 - vz1 * vy2, vz1 * vx2 - vx1 * vz2, vx1 * vy2 - vy1 * vx2); + glVertex3f(x0, y0, z0); + glVertex3f(x1, y1, z1); + glVertex3f(x2, y2, z2); + glVertex3f(x3, y3, z3); +} + +void drawFlyingSaucer(const float res = 12.0) +{ + static const int nb = 9; + static const float h[nb] = { 1.0, 0.9, 0.8, 0.5, 0.4, 0.3, 0.15, 0.01, 0.0 }; + static const float r[nb] = { 0.001, 0.2, 0.3, 0.4, 0.8, 1.0, 0.8, 0.5, 0.0 }; + +glBegin(GL_QUADS); +glColor3f(0.5, 0.5, 0.5); +for ( int i = 0 ; i < nb - 1 ; i++ ) { +for ( float j = 0.0 ; j < 2.0 * M_PI ; j += 2.0 * M_PI / res ) { + quad(cosf(j)*r[i], h[i], sinf(j)*r[i], + cosf(j+2.0*M_PI/res)*r[i], h[i], sinf(j+2.0*M_PI/res)*r[i], + cosf(j+2.0*M_PI/res)*r[i+1], h[i+1], sinf(j+2.0*M_PI/res)*r[i+1], + cosf(j)*r[i+1], h[i+1], sinf(j)*r[i+1]); +} +} +glEnd(); +} + +int main(int argc, char ** argv) +{ + bool running = true; + SDL_Event event; + float ry = 0.0; + float rz = 0.0; + + SDL_Init(SDL_INIT_VIDEO); + SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + SDL_Surface * screen = SDL_SetVideoMode(640, 480, 32, SDL_OPENGL|SDL_HWSURFACE); + SDL_WM_SetCaption("Flying Saucer !", ""); + + glShadeModel(GL_SMOOTH); + glClearColor(0.0, 0.0, 0.0, 0.0); + glClearDepth(1.0); + + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LEQUAL); + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); + + glEnable(GL_LIGHTING); + glEnable(GL_NORMALIZE); + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0, GL_AMBIENT, (float[]) { 1.0, 1.0, 1.0 }); + glLightfv(GL_LIGHT0, GL_DIFFUSE, (float[]) { 1.0, 1.0, 1.0 }); + glLightfv(GL_LIGHT0, GL_POSITION, (float[]) { 0.0, 20.0, 0.0 }); + + glViewport(0, 0, 640, 480); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(45.0, 640.0 / 480.0, 0.5, 100.0); + glMatrixMode(GL_MODELVIEW); + + while ( running ) { + while ( SDL_PollEvent(& event) ) { + if ( event.type == SDL_QUIT || (event.type == SDL_KEYDOWN + && event.key.keysym.sym == SDLK_ESCAPE ) ) + running = false; + } + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glLoadIdentity(); + + glTranslated(2.0*cosf(rz), 2.0*sinf(rz), -10.0); + rz += 0.001; + glRotatef(ry, 0.0, 1.0, 0.0); + ry += 0.1; + drawFlyingSaucer(); + glRotatef(ry/5.0, 0.0, 1.0, 0.5); + glTranslatef(1.0, 2.0*cosf(ry/100.0), -3.0+cosf(rz/50.0)); + drawFlyingSaucer(70.0); + + SDL_GL_SwapBuffers(); + } + + SDL_FreeSurface(screen); + SDL_Quit(); + + return 0; +} diff --git a/gfx/robot.blend b/gfx/robot.blend new file mode 100644 index 0000000000000000000000000000000000000000..6831f30394dfac9487a0789002ae05ae7781009a GIT binary patch literal 170628 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 K6(kt)zyAlIlSRS+ literal 0 HcmV?d00001 diff --git a/gfx/robot.cpp b/gfx/robot.cpp new file mode 100644 index 0000000..8e019f4 --- /dev/null +++ b/gfx/robot.cpp @@ -0,0 +1,264 @@ +#include +#include +#include +#include +#define _USE_MATH_DEFINES +#include + +#define WIDTH 640 +#define HEIGHT 480 + +inline void glRotateX(float angle) { glRotatef(angle, 1.0f, 0.0f, 0.0f); } +inline void glRotateY(float angle) { glRotatef(angle, 0.0f, 1.0f, 0.0f); } +inline void glRotateZ(float angle) { glRotatef(angle, 0.0f, 0.0f, 1.0f); } + +void cube() +{ + glBegin(GL_QUADS); + glNormal3f(0.0f, 0.0f, 1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + + glNormal3f(0.0f, 0.0f, -1.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + + glNormal3f(0.0f, -1.0f, 0.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + + glNormal3f(0.0f, 1.0f, 0.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + + glNormal3f(-1.0f, 0.0f, 0.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + + glNormal3f(1.0f, 0.0f, 0.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glEnd(); +} + +float param = 0.5f; +float mod = 0.01f; + +const float freq = 6.0f; + +void legs(float t, float mul) +{ + glPushMatrix(); + glTranslatef(0.19f*mul, 0.0f, -0.015f); + glRotateX(cosf(t)*13.0f-2.5f); + glTranslatef(0.0f, -0.7f, 0.0f); + glPushMatrix(); + glScalef(0.1f, 0.25f, 0.1f); + cube(); + glPopMatrix(); + + float m = -min(0.0f, cosf(t+M_PI/2.0f)); + glTranslatef(0.0f, m*0.15f - 0.52f, m*0.015f - 0.06f); + glRotateX(10.0f); + glPushMatrix(); + glScalef(0.1f, 0.3f, 0.1f); + cube(); + glPopMatrix(); + + glTranslatef(0.0f, -0.3f, 0.1f); + glPushMatrix(); + glScalef(0.1f, 0.03f, 0.2f); + cube(); + glPopMatrix(); + glPopMatrix(); +} + +void arms(float t, float mul) +{ + glPushMatrix(); + glTranslatef(0.24f*mul, 0.4f, 0.0f); + glRotateZ(30.0f*mul); + glRotateX(cosf(t)*20.0f+180.0f); + glTranslatef(0.0f, 0.3f, 0.0f); + glPushMatrix(); + glScalef(0.1f, 0.3f, 0.1f); + cube(); + glPopMatrix(); + + glTranslatef(0.0f, 0.22f, 0.0f); + glRotateY(fabsf(cosf(t))*16.0f*mul); // mouvement sympa mais pas obligatoire du tout... + glRotateX(100.0f); + glRotateZ(165.0f*mul); + glTranslatef(0.0f, 0.21f, 0.0f); + glPushMatrix(); + glScalef(0.09f, 0.27f, 0.09f); + cube(); + glPopMatrix(); + glPopMatrix(); +} + +void robot(float t) +{ + // head + glPushMatrix(); + glTranslatef(0.0f, 0.71f+0.05f*fabsf(sinf(t)), 0.04f); + glRotateX(-5.0f+10.0f*fabsf(cosf(t))); + glScalef(0.2f, 0.2f, 0.2f); + cube(); + glPopMatrix(); + + // body + glPushMatrix(); + glTranslatef(0.0f, 0.05f*fabsf(sinf(t)), 0.0f); + glRotateY(2.5f-5.0f*cosf(t)); // obligatoire... + glScalef(0.3f, 0.5f, 0.17f); + cube(); + glPopMatrix(); + + // arms + glPushMatrix(); + arms(t, -1.0f); + arms(t+(M_PI/2.0f)*freq, 1.0f); + glPopMatrix(); + + // legs + glPushMatrix(); + legs(t, -1.0f); + legs(t+(M_PI/2.0f)*freq, 1.0f); + glPopMatrix(); +} + +void quad() +{ + glVertex3f(-1, -1, 0); + glVertex3f( 1, -1, 0); + glVertex3f( 1, 1, 0); + glVertex3f(-1, 1, 0); +} + +#define b(x) (x/255.0f) +void sonic(float t) +{ + bool c = false; + for ( float y = -10.0f ; y < 11.0f ; y++ ) { + for ( float x = -10.0f ; x < 11.0f ; x++ ) { + if ( c ) + glColor3f(b(215), b(100), b(10)); + else + glColor3f(b(10), b(70), b(200)); + c = !c; +// glTranslate3f(); +// glRotatef(, 1, 0, 0); +// glRotatef(, 0, 1, 0); + quad(); + } + c = !c; + } +} + +#undef main +int main() +{ +#if 0 + bool running = true; + SDL_Event event; + SDL_Surface * screen; + float time = 0.0f; + float rotation = 0.0f; + bool mousedown = false; + + SDL_Init(SDL_INIT_EVERYTHING); + + screen = SDL_SetVideoMode(WIDTH, HEIGHT, 32, SDL_OPENGL); + SDL_WM_SetCaption("Robot !", ""); + + glViewport(0, 0, WIDTH, HEIGHT); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(45.0f, (float)WIDTH/(float)HEIGHT, 0.01f, 100.0f); + + glMatrixMode(GL_MODELVIEW); + + glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); + glEnable(GL_COLOR_MATERIAL); + + glEnable(GL_DEPTH_TEST); + glDepthMask(GL_TRUE); + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + + glEnable(GL_POLYGON_SMOOTH); + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + static float ambient[] = { 0.1f, 0.1f, 0.1f, 1.0f }; + glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); + static float diffuse[] = { 0.1f, 0.1f, 0.1f, 1.0f }; + glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); + + static float position[] = { 2.0f, 4.0f, -2.0f }; + glLightfv(GL_LIGHT0, GL_POSITION, position); + + unsigned int tick = SDL_GetTicks(); + + while ( running ) { + while ( SDL_PollEvent(& event) ) { + if ( event.type == SDL_QUIT ) + running = false; + else if ( event.type == SDL_KEYDOWN ) { + if ( event.key.keysym.sym == SDLK_ESCAPE ) + running = false; + } else if ( event.type == SDL_MOUSEBUTTONDOWN ) { + if ( event.button.button == 1 ) + mousedown = true; + else if ( event.button.button == 4 ) { + param += mod; + printf("param = %f\n", param); + } else if ( event.button.button == 5 ) { + param -= mod; + printf("param = %f\n", param); + } + } else if ( event.type == SDL_MOUSEBUTTONUP ) { + if ( event.button.button == 1 ) + mousedown = false; + } else if ( event.type == SDL_MOUSEMOTION ) { + if ( mousedown ) + rotation += event.motion.xrel; + } + } + + glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT); + glLoadIdentity(); + + glTranslatef(0.0f, 0.0f, -5.0f); + glRotatef(15.0f, 1.0f, 0.0f, 0.0f); + glRotatef(rotation, 0.0f, 1.0f, 0.0f); + + robot(time * freq); + + SDL_GL_SwapBuffers(); + + time = ((float) SDL_GetTicks() - (float) tick) / 1000.0f; + } + + SDL_Quit(); +#endif + + int a = 42; + printf("%d\n", (a ^ -1)+1); + system("pause"); + + return 0; +} diff --git a/gfx/robot.simple.cpp b/gfx/robot.simple.cpp new file mode 100644 index 0000000..8b6e386 --- /dev/null +++ b/gfx/robot.simple.cpp @@ -0,0 +1,194 @@ +#include +#include +#include +#include + +#define WIDTH 1024 +#define HEIGHT 768 + +void color(float r, float g, float b) +{ + glColor4fv( + (float []){r, g, b, 1.0f}); +} + +void cube() +{ + glBegin(GL_QUADS); + glNormal3f(0.0f, 0.0f, 1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + + glNormal3f(0.0f, 0.0f, -1.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + + glNormal3f(0.0f, -1.0f, 0.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + + glNormal3f(0.0f, 1.0f, 0.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + + glNormal3f(-1.0f, 0.0f, 0.0f); + glVertex3f(-1.0f, -1.0f, -1.0f); + glVertex3f(-1.0f, -1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, 1.0f); + glVertex3f(-1.0f, 1.0f, -1.0f); + + glNormal3f(1.0f, 0.0f, 0.0f); + glVertex3f( 1.0f, -1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, -1.0f); + glVertex3f( 1.0f, 1.0f, 1.0f); + glVertex3f( 1.0f, -1.0f, 1.0f); + glEnd(); +} + +const float freq = 6.4f; + +void legs(float t, bool i) +{ + float x[2] = { 0.19f, -0.19f }; + + glPushMatrix(); + glTranslatef(x[i], -0.1f, 0.0f); + glRotatef(cosf(t)*10.0f, 1.0f, 0.0f, 0.0f); + glTranslatef(0.0f, -0.7f, 0.0f); + glScalef(0.1f, 0.4f, 0.1f); + cube(); + glPopMatrix(); +} + +void arms(float t, bool i) +{ + float x[2] = { 0.24f, -0.24f }; + float r[2] = { -40.0f, 40.0f }; + + glPushMatrix(); + glTranslatef(x[i], 0.4f, 0.0f); + glRotatef(cosf(t)*15.0f+r[i], 0.0f, 0.0f, 1.0f); + glTranslatef(0.0f, 0.3f, 0.0f); + glScalef(0.1f, 0.3f, 0.1f); + cube(); + glPopMatrix(); +} + +void robot(float t) +{ + // head + //color(1.0f, 1.0f, 1.0f); + glPushMatrix(); + glTranslatef(0.0f, 0.71f+0.05f*fabsf(sinf(t)), 0.04f); + glRotatef(-5.0f+10.0f*fabsf(cosf(t)), 1.0f, 0.0f, 0.0f); + glScalef(0.2f, 0.2f, 0.2f); + cube(); + glPopMatrix(); + + // body + //color(0.5f, 0.5f, 1.0f); + glPushMatrix(); + glTranslatef(0.0f, 0.05f*fabsf(sinf(t)), 0.0f); + glRotatef(-2.5f+5.0f*fabsf(cosf(t)), 0.0f, 1.0f, 0.0f); + glScalef(0.3f, 0.5f, 0.17f); + cube(); + glPopMatrix(); + + // arms + //color(1.0f, 0.5f, 0.5f); + glPushMatrix(); + arms(t, false); + arms(t, true); + glPopMatrix(); + + // legs + //color(0.5f, 1.0f, 0.5f); + glPushMatrix(); + legs(t, false); + legs(t+(M_PI/2.0f)*freq, true); + glPopMatrix(); +} + +int main() +{ + bool running = true; + SDL_Event event; + SDL_Surface * screen; + float time; + float rotation = 0.0f; + bool mousedown = false; + + SDL_Init(SDL_INIT_EVERYTHING); + + screen = SDL_SetVideoMode(WIDTH, HEIGHT, 32, SDL_OPENGL); + SDL_WM_SetCaption("Robot !", ""); + + glViewport(0, 0, WIDTH, HEIGHT); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(45.0f, (float)WIDTH/(float)HEIGHT, 0.01f, 100.0f); + + glMatrixMode(GL_MODELVIEW); + + glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); + glEnable(GL_COLOR_MATERIAL); + + glEnable(GL_DEPTH_TEST); + glDepthMask(GL_TRUE); + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + + glEnable(GL_POLYGON_SMOOTH); + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0, GL_AMBIENT, (float []) { 0.1f, 0.1f, 0.1f, 1.0f } ); + glLightfv(GL_LIGHT0, GL_DIFFUSE, (float []) { 0.1f, 0.1f, 0.1f, 1.0f } ); + + glLightfv(GL_LIGHT0, GL_POSITION, (float []) { 2.0f, 4.0f, -2.0f } ); + + unsigned int tick = SDL_GetTicks(); + + while ( running ) { + while ( SDL_PollEvent(& event) ) { + if ( event.type == SDL_QUIT ) + running = false; + else if ( event.type == SDL_KEYDOWN ) { + if ( event.key.keysym.sym == SDLK_ESCAPE ) + running = false; + } else if ( event.type == SDL_MOUSEBUTTONDOWN ) { + mousedown = true; + } else if ( event.type == SDL_MOUSEBUTTONUP ) { + mousedown = false; + } else if ( event.type == SDL_MOUSEMOTION ) { + if ( mousedown ) + rotation += event.motion.xrel; + } + } + + glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT); + glLoadIdentity(); + + glTranslatef(0.0f, 0.0f, -4.0f); + glRotatef(15.0f, 1.0f, 0.0f, 0.0f); + glRotatef(rotation, 0.0f, 1.0f, 0.0f); + + robot(time * freq); + + SDL_GL_SwapBuffers(); + + time = ((float) SDL_GetTicks() - (float) tick) / 1000.0f; + } + + SDL_Quit(); + + return 0; +} diff --git a/gfx/text.bin b/gfx/text.bin new file mode 100644 index 0000000000000000000000000000000000000000..6b8a2066d72772cfec84f163803f816ab5c2dff5 GIT binary patch literal 152 zcmZXM!4&`?2tsLsHZnar6|09GeD&gl2p?#%oeVQGBET`|PROsiFFk$z)bp=bBTb7l Ng=(&y+%6m*-Ud<&5!e6# literal 0 HcmV?d00001 diff --git a/gfx/text.lz77 b/gfx/text.lz77 new file mode 100644 index 0000000000000000000000000000000000000000..1d1e4dd5f3c8c81fff2e622d7b14c0025978a0f6 GIT binary patch literal 72 zcmWfb!N8!wz>vUL-@wgK@5$il>FDUlP|wK3SnuFa&%nTK|673ngT8?vgEoV@!vl2z clUoc{0`B|_UJ2oL3gUJLKKMH@GB7Xz06m%zX#fBK literal 0 HcmV?d00001 diff --git a/gfx/text.png b/gfx/text.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c2cdf1aee5239b0fab997f0acb4002413048c2 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^96&sSgAGXD%v^B-NHG=%xjQkeJ16rJ$YD$Jc6R~N zK=9LfcRi5eEbxddW?;_bOD7VOI#yLobz*Y zQ}ap~oQqNuOHxx5$}>wc6x=<11Hv2m#DR*Idb&7zt_=E&Eez?04S|Nkc&i3=HO z-5LjP%(b{;czbOR1CRK`3mlA14LQ$@eTAlo-51mjz3L%zUSDLV|KB^JXQyR4LkoVWZG5xiLriy zf0mw-npwaaMqTr#a;0a?5<*`;f2dzwdijXg|MNEDF|S|F;QqPfn>12)*abs(x))>>12 + y = (((P * (((y * abs(y))>>12) - y))>>12) + y) + return y + + +n = 200 +for x in xrange(n): + i = -math.pi + x/100.0*math.pi + + print "==== " + str(i) + print "fixed : " + str(int(sin(int(i*4096.0)))) + print "math : " + str(int(math.sin(i)*4096.0)) + diff --git a/tools/img2bw/Makefile b/tools/img2bw/Makefile new file mode 100644 index 0000000..290a6b2 --- /dev/null +++ b/tools/img2bw/Makefile @@ -0,0 +1,60 @@ +# programs +CC = gcc +CXX = g++ +STRIP = strip +RM = rm + +# flags +CFLAGS = -g -Wall +CXXFLAGS = $(CFLAGS) +LIBS = -lfreeimage + +# directories +SOURCEDIR = src +HEADERDIR = +LIBDIR = + +# generated variables +CFILES = $(foreach dir,$(SOURCEDIR),$(wildcard $(dir)/*.c)) +CPPFILES = $(foreach dir,$(SOURCEDIR),$(wildcard $(dir)/*.cpp)) +HEADERS = $(CFILES:.c=.h) $(CPPFILES:.cpp=.h) +OBJS = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o) +LIBS += $(foreach dir,$(LIBDIR),-L $(dir)) +INCLUDE = $(foreach dir,$(HEADERDIR),-I $(dir)) +PROJECT = $(notdir $(CURDIR)) + +# selecting linker +ifeq ($(strip $(CPPFILES)), ) + export LD = $(CC) +else + export LD = $(CXX) +endif + +# default compilation +.c.o: %.c + @echo [CC] $< + @$(CC) $(INCLUDE) $(CFLAGS) -o $@ -c $< + +.cpp.o: %.cpp + @echo [CXX] $< + @$(CXX) $(INCLUDE) $(CXXFLAGS) -o $@ -c $< + +# standard rules +$(PROJECT): $(OBJS) + @echo [LINK] $(PROJECT) + @$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + +clean: + @echo Removing objects... + @$(RM) -f $(OBJS) + +mrproper: clean + @echo Removing $(PROJECT) + @$(RM) -f $(PROJECT) + +release: all clean + @echo [STRIP] $(PROJECT) + @$(STRIP) $(PROJECT) + +depend: + makedepend -- $(CFLAGS) -- $(CFILES) $(CPPFILES) diff --git a/tools/img2bw/freeimage-license.txt b/tools/img2bw/freeimage-license.txt new file mode 100644 index 0000000..479fb4d --- /dev/null +++ b/tools/img2bw/freeimage-license.txt @@ -0,0 +1,142 @@ +FreeImage Public License - Version 1.0 +--------------------------------------------- + +1. Definitions. + +1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. + +1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + +1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + +1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. + +1.5. "Executable" means Covered Code in any form other than Source Code. + +1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + +1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + +1.8. "License" means this document. + +1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a +Modification is: + +A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + +B. Any new file that contains any part of the Original Code or previous Modifications. + +1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + +1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control +compilation and installation of an Executable, or a list of source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + +1.12. "You" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity. + +2. Source Code License. + +2.1. The Initial Developer Grant. +The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + +(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and + +(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell ("Utilize") the Original Code (or portions thereof), but solely to the extent that +any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or +combinations. + +2.2. Contributor Grant. +Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + +(a) to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code or as part of a Larger Work; and + +(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that +may be necessary to Utilize further Modifications or combinations. + +3. Distribution Obligations. + +3.1. Application of License. +The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or +restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + +3.2. Availability of Source Code. +Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + +3.3. Description of Modifications. +You must cause all Covered Code to which you contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + +3.4. Intellectual Property Matters + +(a) Third Party Claims. +If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make +available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + +(b) Contributor APIs. +If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file. + +3.5. Required Notices. +You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Covered Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its +structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or +liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of +warranty, support, indemnity or liability terms You offer. + +3.6. Distribution of Executable Versions. +You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You +describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code under a license of Your choice, which may contain terms different from this License, +provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. + +3.7. Larger Works. +You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + +If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + +5. Application of this License. + +This License applies to code to which the Initial Developer has attached the notice in Exhibit A, and to related Covered Code. + +6. Versions of the License. + +6.1. New Versions. +Floris van den Berg may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + +6.2. Effect of New Versions. +Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Floris van den Berg +No one other than Floris van den Berg has the right to modify the terms applicable to Covered Code created under this License. + +6.3. Derivative Works. +If you create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), you must (a) rename Your license so that the phrases "FreeImage", `FreeImage Public License", "FIPL", or any confusingly similar phrase do not appear anywhere in your license and (b) otherwise make it clear that your version of the license contains terms which differ from the FreeImage Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + +7. DISCLAIMER OF WARRANTY. + +COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + +This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + +9. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE +EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + +The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + +11. MISCELLANEOUS. + +This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by Dutch law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in, the The Netherlands: (a) unless otherwise agreed in writing, all disputes relating to this License (excepting any dispute relating to intellectual property rights) shall be subject to final and binding arbitration, with the losing party paying all costs of arbitration; (b) any arbitration relating to this Agreement shall be held in Almelo, The Netherlands; and (c) any litigation relating to this Agreement shall be subject to the jurisdiction of the court of Almelo, The Netherlands with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + +12. RESPONSIBILITY FOR CLAIMS. + +Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based +on the number of copies of Covered Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute +responsibility on an equitable basis. + +EXHIBIT A. + +"The contents of this file are subject to the FreeImage Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://home.wxs.nl/~flvdberg/freeimage-license.txt + +Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. \ No newline at end of file diff --git a/tools/img2bw/freeimage/FreeImage.dll b/tools/img2bw/freeimage/FreeImage.dll new file mode 100644 index 0000000000000000000000000000000000000000..33b521d36252ffd28a1402d3d9a41d18aeaa51e5 GIT binary patch literal 2088960 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

h4#V2AyK;~l=>N4CEDva6GbmE z5N|m4OUg{%4^xF;Dt~UWQ5xpx)dIbrA|Z4dvm@L399d=OUnjK}vs3;|1IfH7X1BIq zc%@WQm)uTE5QmN0lL>SACAxiA``~gNX`BSh%9Xc$@F-x(u(O2b``mEew2Zms=;)H8 zxBbFQbg!61_3Gx2{)PZk3E9D*Rsl=X{rqjym_t?DxrXHPZjrIrv0t$V;=Os(`py@6 z&LhoHKvjY=$F&O%ti~-MjfuPSYyu;y$TX;!JEQO>Shk;CXfW4d_8H6-vFa!P)VMo0 z`2;f7*!lG;&OKR+iV@ubutm!JAk?%?{2frs{VPK`7=BhiNEbIt*lwVTvSpC&?w2`F zShh>EgI1l!hDJkd+8$O2sTNur63KuNmZ1agV^VFn74k~3P*7?k^5GryJnqlo782bT zi^-znO|x<}=2pGpS0Pc!g2=n|gn;$%jx_4Qqh94uMqt63Jmw{>fd$Xz;^jsnrNK_()iIC^ajcNq5YD(ixbolm6vx9~CLU!2~U@_yaZ>S?vT#Vuu9 z46&>-o%lXUEXnR6y60sQSY=x2FXBsG@*(S~o|P%@ovF)uTS~jY zRJKm9>LHlTP@WB*t)BHBjb=@kXQk~u-_x3Y$-|DxT+sAbH9MVb-IBwgWtDc(SUE(_ zB6j2yt7g-#v<%#3LTI}Jsl{NZ{_}GXy0qP@-=Sywv+~N>kR{W9t`~UY$GJJ;FLIZ} zS!0#$ceF(Mm#pZTE>g8|;@VQ#U6G@f+=$Xys+grq{3BSiKtb7NO2(3kxjIqLm+D8y@WJ71v`mX@|PoIy#JcNtX}%&x!ChrMgP z%cMvmaccMKTX#b*TzGzRI(XO`=shSh5N{{%SgQS9%{@>v_$tY2~Bs{h4PCfjFVmthP&6 zx39BHTie%3S8fGT_x+9`NrQA~1K6S8Tgesa(w$b>a;gIAyKWFMRMllAm!!P^N<~`A z*fP260zw0iCpq2(nF&>`G9MM*np{FJuuti0d*kC^+V}c?+LvXl>XHMruXV`U+LG)s z{#x;*ufEpuKZ#8;QLgP>LUn8%@aXR|JlX}18jh~0H9Wf3s_`AmquYlZ!=v-Q-hUGx zher+mxA%j8vFUuNVcM!Bqo&KJ32?Hy8Hh2^)GHV1(mr;5a4tiq*m7pyBvVd*#v3N zWI&Psl?*J-figol3uR5N^KI&~p3Wyb>>~sI4Mvl(#*_ARHBwue?{K>sfRD3?o*0psYGv-qYD>m2Hw?&2xzHe^qYh3-s%W>I)Q(FtFr& z9|5ULP1jn%S@3P_%!Orky(reVuT`tw+0>$JKRh>`W!7V)tYd8BVfgv(e)xI3(f_o> zg;XsfyU_n$)iSrG^s!o31?=OFE!T_K{oPjBk^7F4?P@!q%V1WzGJ)8w*{Ig#8nL^> zWw5f#bxv$C^${jn0j) zX(@dIzTpG3FI|CfO${4ld!L{w?3yK>O}2L#Txi!UH)7TS9=tJF~;@&*fkq>VoDz8`&};^O{!Q)r?pIq`y?VRcVzso$wed4m{wq#6NS zvL4NlYTrE~*;QX%@(N0H{iVWkN#)tl^ol5g-XGaDkJ+V<*`el!f$6J$ga<*h%sU$E zyK)*nYkQmFN^4)yd+FFRtA3|cI=PW*b}kW>Hn(O==Odb}F9TE1E?3_Wplm-V9N*gJ z^6SI>@N1#yKZ$AtZ^?o3mgFXe5H$hkUn?Eo?s8698b&kIl|p(*rTXx75vP?c^&8a% zY4N)%-Ju4eRyfwO8dd4I+LX52HC^hA2>ES_CwJ73WBEb%=a=ihB4^&p2#N68*=G>* z*i{5{x#ln*=|xq32@3I8>#1rNUFu1ltjj$zE$--yTi|fndz+(f|ADmeCey5EFi~1w zIJ*C4tyH(2271Wjogx%mdAu`@Jg(}K#~bTW@|S^`=2HwYg#m;yjQN&m2b=8DP3`&j z>)}CQ^})|YJ_{(aSH$oNPkno1>CW8FU+Xc_T9qwc^!-uBbn~m%WQLzswtg!0duVMu zH(zHKYA!jwTaVG72O+inK|L+jhA@hXzt?`YMuQ^j-q4qvGGB)`%-WbM!HoQRq91-3 zFZ@ulO>;zfOU+{~H9J~r+FNRNq7SyzJlayD5ST4BJ?eKNGxs7YIqI@c$dqk@Rb(f0 zj{5Lg8T4NHvs9;B4Wc^n?)n02t@t;vMprlZ0i<-%O0wJB-MJ?jq(|#k9%;|S+A)Yy)K1zmC1Jn`O1Eo9Cct8 zXKeJw>$~b15uY^-nPO81u5q2a5^B**+OIUo>-+_Om)GQQV zix|%2zMR~(uA=Uj+z;FxN8XVAlkv4OM>5^>uPjs5j8}naGx_*8paDKx?OZ;dTxs+Z#XVCMtV^ zc9)&?IVzt-mFhnv(He#N-rpS0Dt*jQqEVvN@4#kQ(^Y$xX6sN!ahSnJ&C_*V)#`iS z*Q$e6-!4kVQ87nm#~k6r)Kf+r49;=icbYN-QfBEE^OC1u9yKrTBlwnAlp-i}AN{2H zWNSbDXJkidsInu!6;Y5#Zx*?#jmNj1f})QNcsb#Hiy7GX^g>2WxTDnHk^h8zG)I2B z@gMCkK3$aAM#(n%C*86~&2EvdDE%e4Dwo0fio3*mNPMyHI zE1JYc^%j6uGi(#GT;-gk6_21gC{uee&ZJcrAX6o#&~TKThg+rMRT~4T`SMoJG&-JK zS3hNKscaCGbGRDo!=Cz5l=aAyn%uV(;UhNeNi%JesoG`ti#(P|oY*n^Psnm&X*k!O z-qX3t-jntAN9j1fvPzd*Wh-*ag1Mz#48tfko^&Jg`CW6-HmcQ&TH!~#Tn&&=4VyCt z!zbkn8dbF#A%o~z_{fp-#=3zSlnJKcw!3s(hbeF2W%PKj&Qn>K$X5>6$)*#c|rl$GUT^&gweFc?!017RvI6jSjiRxXB3 z#Ckl6v-e(q6=QEH)7+rFL#_F#9v6q%M4(D~nZxwNn+Y1OrrfK)YjZNI4dVzbRHY_R zCu+YgHjWRY_z-p?j8w6sBCz~0iteHlbmZ@VlIqQ@g4+kD32M*ZB-Cd~C4VCTb5fFo zD(w7q63n`#`tU@vJ0qyx17anzM)qZ}P+;$2IV-Sm8(f~Q3hQ}jVBw3r$u_26GQov5 zG1kodoXg8Tgdg#RMQvtA|7tA$pq4&KC%d(THZ5=}GAv!@r(mhuC|S<=7lX5Y$KF1! zy$z-23|K%`3_`{$PS#juaWbR>!;Y&Qr`bxNzJQI@fghXWk|KdSlA@N^VPI!Lfwkb` zTrB+DC>vy1CdOLdIQh(q(XOqG8CI2#wZ5zPT{)4=u2j1*IIuNv6GZUO`=<3Ct4Ci= zeFOIl_dW=FRCi;mpLIyK*i0qKRD0B3z$+y+C|{KxwIA@R?fD zr+TdIk8{`dt(RHMAAe+6(>A6XhCEX>iCVWGhKr>b%FqitSElPgm?8pqo=OdDMMDhZ zc&uLQT}t3$;Giz+&#svhw)fe@sw*1adG-KK|xNITg*zE%kv# zmq=4lCv$9BL|5;Q&%4b_8w!nyAWbaIJ1kdd9cbDk>v(Cny+WNHl=hrAo@#`+H=KuT zEh@I#td;3EaX!hk=35YVa+frwhW6T{_8Vw_k}U$dF*|dUt7K_R>pzakSYM;ww;O1q z@keIyser{Nv-0$7?}?iILS{VpH32Lj4P`p27myrL4rkz36j*S& zaKHFMsGPupKfyAx;reR+3pC{kTkSz-pbunLu6POEa$d(<#v5YHEoU<=>Iy=R{JqE$ zdbhLnh;`HoRm}mkE5kV*TctAV^+yRFWrF+9`wRBU4(A-|ld&7=yz!OS`Tdp#?I*vx zO>qDD753%FD!9o{V|hK7tm|AivqaZVu75JYC9QlD|I2-l%-49x$IgP53Bi`Jq51)u z13L39oOV1dW5e7J-?pQmqGfDk?bs-!%;B_16y6CzF$xhJRbF{d1U;{KUYXc(XN-YS z?VFCP)t!Za*4VHZ#jutVWKD>Q^1r_2&Y^s&J*V+miJepX*~VujZcgnW8N#sGK=cw(amgaPa1! zbwkwio*ap|3L5*wE3RO<gM?f1?FC*0jo+7`3LJtU zjg)O7vCX|Lbqiyun{(qI)Ss9d|ECy;L}jyvxSYNBpO#!P69w}Sh>1htEu5B#6MuYd zV3F*`aBiG4$@gm(Uc|R=;pkG+dQwvU#~yan&u-QmI)YW zjrCiHrJ{mGQ)}IisczKTYjQ10c*$`v$OHwMU32&k5!&<$34+IFA4pXY;iw`4sgV+R z*uw1<`tLfAw=A7o?jNYKekc6jxS^MGgnMt}Ov=kS)Zr=V2~vdY=?c%7}$?x*vyPveSXWnNcg5 z(?~f%>$SGSgNoj5N#?Y@H7NIFG_Jny(S{-aX1{5%lJJ@8O_k z{Jig;p7P4!{b8{Ng=iSJiU?*>hNaaw#L{}VXm8_3Ow-s=TknUig;ZEvvkHYTY3FWn zHEHlt<*@aXh_ci-=z=gSsJ~-%xBb=I_O^TtQlS{3AymC^d{vz<{#sx$=Q+rEvEtFm zoKlipTtCN*qTxM6c?eNLruRoPmM)0-m7=*=t%)*|!4%)DA`G{-(96i|C zcDTSn>6+H}zylGru67Vvv(26}TP7}F|ICVSNHly`HRji}b{-L}O`;VozkJ9yFEPqT`oPD0i?@+cPhT^6-+i#Wvw`Uu}4 z-#nYFTu?*j{7rZLzL&?@GLaGNS8* z%_9zb83K<_@PS06Wvt(@_^v({kEiSMpC$*?vmixa2W^NHt;Kvfmh<{iWGhvh5b`Cp zkeA#B2K%Poss@}gkS}d{odXu|$XlF}NiIAV~UROIKpX#D;sc-^HZHbu6HyD`@_&}YNR0s3}?AokEdQCF0% zhG4@5a;{3AmEgpo(2(Zxk2ExCh_|`C*8zRaLD6a2I9!Mw0l~Ugso%NOud%_Whg|8e z4c{&4Wh;w^{W~;l)GFZU?E@Uo!DTG7y&S4jT(T{&^xLq0b#7qkfQpH-FXXG;kP3}~ zaktrfLSR`(<62LAnz!yX5zoSmR4uTqn>`1b7ax|RjM(xJ%+VJ%WHuWhuS|Qht3bWW z-V$0htj>8>0}+)&^R_g^N_uB5I6p53y}RY2mWE(UgTIA*88jL~>efl@H`ZSZ)DJT- ztnuBx7oV!?d-1DrywK>@*ht`U(bUV;R|&B`)3`d!WkzE|fdzL#l@Sfz+M7o-_-boM zH27>Iyjeo$cM0&zD>XM0_d`_A%&6mgpS?l8I56nSCH`lRiV0McL}?0@K#zEczj*U_ytjT=t9vh>tIAV^qgyo z-lJuJLX5>BYiw*{xf(C?;c4M`2f>lRo#Or!SX!PJczkLs)b@_Y+R*l9zGnkLxxC?J zx4G@De9z{VI22Zpr;UQ4k0n2pz@_c#$N_?FR=8c+_t}a ztk;D`uLqV6=f(57b-3;Ae9vKO)(Z(!_nxe2M)&joOcJoCEATjX0{j%Z59eO=%*#y( z#9-!axK+0T>degb)IBE8UU|xZBDAqC!qssqCN5w*BH89=<8hPsC`3H{Ad;Vr$W7iO zF!5w#a#KFVb7A(1sDp~<<53xS1S-CxP#Mq^R0cRy8R($m`*>9T zA93#jA9Zmq{O@KrVS$BRaM4Ah#&&I^Ni{X81{V|+LR2oh3CU7{#J0*CbErkw6;wcQ z6J_&btEZ*!v8|rkQ%{e!_Nc7~qxBLlCg2Uc2l3WcJrjcpUN9<{|M!{M&2Bf3084>VvA)2aur22 zN9de0^fDZTXswG`UB=>K?N-@{HWv=uWYYVS_)y;U4m;Ez?U8kJ1BanLI8D<)LNSZa z!ZQBkjRG-do6O%-{-*I)&EHJ^Lj29;ZytXO_`8t5i}-8eZ!v#M_>1zlg1?oCmcSYS zNYG*e(T?HQdK27Wf(<6P(F8Y{;1(0yY620VQclFL1j6AW5J575P*MaUt|k!8G6K=u zBoJ8~fha!^berHM6TD`E*G-^IAbNk~+-rglOweb7117MEe4!=aG=a+mZWDM-;4^{W z1cfFjGC{xu#U>~H@PP^XOdzZ*(&XqOaGJnn0=EggCh(cSZ-PP-6qz7kf?^Yt znxM=C6(*=O!DJImHNi9!RGVO?2|^~AYl3+uSYUz+O>mJ3noO|R1WQa1HNgrKtTe$I z6SSCMoe9>P;06!nBZ0u+-8D1Oi*DawbBHWO@OOP0pv6jRGVO?2|^~A zYl3+uSYUz+O>mJ3noJ-kB9$#MLDU2*Ot8`fYfR8$f^{ZXZ-N_4u)zd3n&2iA++u=T z2^M)azP0F|-ahVbJ8j)&;_ooQT_(7PVBO5XxJ5#@^yV)T&K;$;Bf8QjbNSPY98Z+* z=3Sxvi~ec*ad(L*#J_G@VEiIZ_G5ZSLTDE)f|@wSx+Cxaby2oskz}N+s zF-aXHIVQ{3R{1I{wnu%%ng?`KU>h-3q2Def`{F>6{SKe3B0l|m3Z}8CKQ4Jp3-$+m z_Ym3b^jiyj#cMY`j5ObKuWYBjT`fMDGNC9WrsI{(*aW~Uw@OctWJj;0P@8mg*9M(8 zQR*i`x@Q$mbljw?PW3lYSWJ@i*Cgp)nE{w2({U-Kd&zSiB{Z%r+qYa`&1|_B9_D3G_YJ!ky}GV^?3Z*}mqJBH7=O!y$xee7PG< zr?p#U@-o~N;a~cIx}WEPV6$A}<&OLs4+1$lV9~iF$;k!KN*p$R>k2Vg^TDUJMmk`L z=d-s9N4S`~GzFNUWMNr4p>WgR@{`Wdjz^NEqnTIW<#>nZez;%JRH@}$TjIQ(Y4JMV zb@Y;6?0CyW_#H3H#5rDZyjbG=IVpvybn*=@;&Z&^&~^BwZa6eWj<@9CCerb|MTx>Wv=M{q?d##Kki@lnI~bg!ewvB`2?Q{w!c;M}G+^BMIkjPX@R4{?nRj$IDt zFBacbi7@20~xvV8_tJr!(YJG%>bvQaV zy^-(eWh{;^dfLfgHAj-cY!Ucd&UlIQ_j2igiSO8+EFCNP-_;=ZIi8fe$dis8jWU71 zZy<-$(hX+;d@#IwQ}AA%4R5cAg9{mq50?_qa8`pa18Uz0=`2)VvZ5F=9>^q}hY?i> zaJw{m6baPh0^{Ec+#Sz3UT{2B;{2(el=n2;oPW{~p`kQHeAYa#rQ6l8?}PQ_z-Q4F zpnI}(1jFyr^9oxjH7kxyW?q=l9&jJX+(~PNCC)oB8QN9i{1xEx3+Bo!|0>-aw^3FW zOGy^a#DT>nO$g)#?wx@1Er$$9P)Q#4DoP>IV*>TZG}IkC1nz?9g#z;(bnvl8$2*`E z@OQS!bf=gQ$ae&_;RuzACmGSVnJ9c9963PUK{1wwBi57bVgY5B_^OJD#&nW-h2ioJEUmvmXbJbe_K=$^M+<>164VbeW0r zQV9iq<-)pXiG`^k#Ep1FTcp@p(M3> z=~cw%z&7OuiQw0B{BX(-U$StNRQ95y(bw&~k*V=9EiXD=?hf3Dq#+cc>lHvjG+;KP zL$C#1f=6H3f&t5B)yrm?9xK!M$|v(*`3u=)Y=!ZyewZ0q*sbkl#hx=@U|x}ed9B(Y zK%DIkqk#lh7!8`ZMAUn0QW2$UDG?eP(jjuG?-7B=iN#p!a(4_a#yte;3{tpD-ev3e zBn#vat9RA#*faTm&HQPUkp{|O&){vOR#|$sy(AQcbv_cO;qOmccM=;grHQRpjiv@6 z{C%F5U$QtskP2FzMp#w?Q9Fg>&9VHORMTa-yE1%}#-^C>^Dpre5i0wTcdrH(_4- z)sG!d_N@PeBTn+kB8zV=+#JZB5iO4rr$hmayQ~>5w4Wx5GUpt3xE?1a-Dbh*sGomgQ-lv$i5r{*2NQck$lH4& zoi7qcFvN^aq+^9@@Fr&a64hQ4>q>-#-&-=4I!o%kjh;InrKOU3xG9e&X8Wybw-xf0 zguEryt_Dd9IZM0?C9T?jmpwHERu)h~0C9>aw=Q)eh;d!rRNDp))LHMapG4RLuXMoz z4qoZLdWvT^jQ;n|L-bd}?Y<(kBK~j@$Le$*brtbvRS+Wn$e-tc!1F zxTd@xrZUQ;iB$(wFK)#xfZ}C=lFLOdXDD35`n_y#e}6lb+7hjMUj+?YmHziN{)G?5 zQnw`@+#^vBzOMg$N&cPXPE7X(k%lFm1UGI`%QK(e(C6R++oC_b@)TCeb-H`l1p;v zkFM!%=`Nao_sKYek6wNJt`^-2N_T0kx-qFJ#!N<*U+)X_4!b6-Mf*iz%pN;CQ3q0n z)rF@sE%k+Hs>HWCBauk6t0shCWe&zgm}{WJtzrQyi&c#M6ULA#I+lDu==p36YcJ!&k`OmP8(uVex2bw&w42=c5}x|b#<@TsHY}r zPI3D+ONX_r0MB05k4TF4J2N>>w)N?+Ckqb>P(mfIMv^z(EYl{tJVFx@1%>5%4$AzZ zcklJIY$7N4wtKp_h7_?SIfX=$h>tl-avT%$&*({d)}0(z*c(4zauc2?nPj8@2A1lg^7i( zWm8dju2FB|r^9pSDzBpp9(z6f>|JKXzUT3^4cQYIeTAO*e*G7pkHAp5_R{6I_ba91?~cU8YnBr~se(ThTIE^xO# zi~bcg)y&$F8EP(6(MWkvtX1=)gr zn@})9wLk-n6XGY#8uD7_y4oOB6V<+TA-~j>%^flNvgQQ{8JGVC)~|>IMT(iPe*GP{ zZ4!haF98*xMS@-;UX}WLcQdMVk7WOt?X>KPkpu~rZxL4(qhBn+@%a+Q4`kQzjO$eKcW7g>iWy5e}>cY0F)#6hzL-QPuE{zosZJ@LS4T%U4I4jYZ-NENOc*Rvff6< zp$S*7f*6hILu%ptE%8nwPRxpU{PCV&f^k_}yulB&)?|`3iWCWoOaetx2mqd>5a29l za3|L^Hy1ZobPRa3)V;C*G%yDsHBUl*zErlRr2f=ZydqOu8bQJ1=*eU3Cl5qTiE)C*f-8B z*&BSXVOhA@+ti0LxAd@!>(ik=V&DA(1~AScK4RPMgrYmtXX^?U9g1RS$(ArJWr-Bu z8p`gQ49oP7zPWD6>Km7{_?~J3Bk0!?o!NX;`TnM?woE&&{Tr*N7SA8#TP({?y)5@phn}x|>nc~T->P-3xssz4 zO_tu#bbU$iF?dU{f6^N+tJ9HSVNQ2Wn#V%LA7=09Nyo&Ti8Fc~=$Kdwot7iW1{Rwj z*{P$mcVt9eA__EHoeA9Ah=QGW()q5~Qk`Lh)tNZQ)q8P79iPg>uLw9`9hMjuB%9OP z*L$RH`ZCjW;tW=h0JYYYI4{$YY98XT&T&ri(-)3L*@(|^a>lmR`rFR(uM7Lvog->C z-apwZ=b;((9?-L9IfGX?JuQFZyRwl;;ni9NEbSj~q^w!thbCD!kH<2e=&S<70Rfc6 zL#r&cyp+_e?@1yn2^?v#`%|{7!C<6NO}V$gM- zs=6byhKdDUOSRwQij(OpJ(3MC8n~#ouGv--!svLpOok#>E2!BUUBSIEF9!iJiDFob z=z8~lZOzI+lPx+XaT2k?ve3&a=tL z(N*mXle&(ZQ}0#QcwOJ&!`0WjF!=3sT^Ep>vWL_)mFiqVSn!W5QHF4~6E+724ChSn zY*~=!$vOx*gL$ljQLKaWT#%J4C!voSXchQ=ln_cBP?Vh+m@BP_be%(Vexh>VrXm}a zVfYT(KdZCm{HyGrcXIhXWdA%5Y#3($to+uO+CPP!Fuc(sOu)pqxm67H^cmFC4@$uv zSf|04W8YKd-CwGr)AkIH?peWf!Hc}2aCN=*Xp zg^79Tno?&R{`O?TVZL0`s-P_ISH%-ZX@X;aH~iDHkVe_>gQE;~AkvcP@fCHuDmTDXruKxC(y zxyLFGu!>}X2gH!H7%nw074{1H!^(_r_48X2iiCUQgAAbJfMLpd2aZwTB?KD!nUUCW zl0oJZLOK*~wj*#*GleaL13?)b@)<6=rwe?G2Ao4rIZ=*8xT3*VVcAGVz}0w5PpI?KIka_Ty)Yl$8aHuYRSq@GkC8;3+w z`Ko1f2x?0xt${Y!bG_=Xw8N}=Ye*?p(RYPy2LO42%kl)P-K$PdkpjA9>&fVZTJiXF z0Onlw2w+4<)PE0&)DGxn)=q+WWW!`R%wL!o$6daWL)qGtnhil2)~}H4vb;j|;d-Xq zCk3^BI9w@p-tn3|MTtoJ38$nhef7~82j#S$UCC@yY1&SlV9Ekw8Mv(()s`!{d|Ik@ zK_)P-0<}P!5|KRM39Huw+@N=JCMM@pCK{X=DyZME4w7?9)h~5eq<+J4j$h5~+l}O> zM*Wczl$%XK7ZiQ6jL6?M@QmU&$Y#(wK6=vEDA3jl6CQ)g6t4( zY)uX6t?7<$>PsK5E2Q@hcFq3e@*?n!vrShaGB$NL6WDCWpIW!7XW|o$POH}0kT}vj zGuS9MBBxD1G%6pd^_iyMeL`vo-s7N43|%B&Um58<}*#y8|PB-gp!d?jbFWoRz^Ku=7En72|%$%lnLF^lo8Tj)%#F0yveWTBc3)+RXg8(m4%>32Y06x!9qtjJ0e znWvmtk<(11L%nMvxs}_6bYSD>Uz`4PQKzi_;HR=Cq++lllxUcnsG1i&245Y5fyjjIXLF@?3j6U)J<89(G#d4DO92SC!J$zp+HP#`Cp{FR>AFShH-G zbo60|)NDgx|Mno!bv7t^obfkFbV#iiPP<%UZ>)CPy3TP?u}lbCM|^7$3{kl>QsZ?} zBVe}bCR=&oWUMk0LB95+x>=5i!(=qhK=tuh0nXIrx8Mxo%RLf+f4s#s3Gg~4zbG>-ttLNGxo>qBJj|TOX z)t9`KP3H+UNe&nY1n8wYr>tkN=OEZuE<*u1pnR=xhA0g=m1!J2$?9H;z|oII7SD5@yepD_i|sE6*C6J^#Y!hO;vl z!ZwWoVdd5A#Uj(>ucTg>Am{riTkB<&hij6vE5od{9qKOGa3E!m)FWhM$FiR%Dxs+W zZmk?WRdX}+0$zhNtpf(I2uXcnNOx#dQw~F3P#*7qFMS6M@0_8-e!< zXVQIAP_#+Fy{q%@lYHFP!uU;oUx0%v#H;4oq9eM_nJf6Rc5%QbS=M&SzX)|UCTG|i z7s8Wt+whqx0rQnbzOuo&JuQz@6dEPa`nKoC9elSRXLGLk=xxVyn?CWN%SW%7e8x%9E5-H1hdS3l4shEmyL7FZAz0PL5ZT2Cl1n!0UAfcg zKgoK81Y-|2kZkRsh0E-1;}8@Izlml;B~K=2PP9X`?mtdXzC4ezg-spAiKxF4C$z1# znT9%@XPhLjlJ*bO$16G10DXIgJ)}08@=`o?PNxGP$wj?B`hTplIPW{aY!I_2WZkY> zTyZtq!u?N+i7s|rhx4Eb{`anWjRUC9Dv-Gy_d^Rk!R5tEzcs%$g^lWOP)p2F!C(&d>MHb zg%6#NFE7uM`??%5!|?wLIcE(2U%t5e4$J?aC@anRdHjC^pNpx4RUl$JIiTw0XB8%d zu8gch))?}ri%6nMmdY^lFu9y?5`V6I<+pxa!65m{PfXk)@&u889hGkHe1^Q#l>myy~7+%0RrB+$;s^Yp}zx5+0G|8`y1QkAv))+eSpZO(QogD?+=xDLu zDv6&Hu=gG>$sV;-GHZgfNix>Etn*wv3{>r8%eJ2%FiEo{>D1nTWv{l*3CNLxr<2U3 z1bR?TIBgRSyPC^sd4!X+2!haS9ke)$Qq)quH1>YF*)xX0RyMEE6dROc; zqBzn0WOzX`z|KAb~hLg|f#VJCTLVb)4mPd}GOM~T+ zKZN2MB#)H&g{F}Q5k%h)1Su4EJJ<7#g9<-aPCxVx3el5n(Mv42^2NOTyv1j|56R+_ z`yHg%`En-`s`Py@;ARjSUB$xaRDG@dvHZMLR&)zrDE!c1F|Cv)eC;S<1Sds#Qx=Nl zS#HFd(?pfMzqe`&6XO7+)_UR^>V@(`LaxK~No&IN{TTUH3dCvoRvLg>zNG;;jC^b9 z-z(o5#9!_EAM#h{{B#)p>RTIz<*#-h@um2y1N?sfuZNLOP55&1se6AiR6bQFok~5d zm?fV&hfWQWPmO`IB=RZXoh6^**P-$$HoU(_KBepUJoywEzN~zTroXCu%GY+5Z(Z28 z?i}r4MdVYws&=S+ipU}IDW8^4p*nzk3Yp5>w0w#MujNy|lzhsUl27?WJ_TS8+>}RKSVzD z!aq7@+oFwIQi76Y59~-h#8Sjkr5`zQ27+~A)h+5zG3B4L+TnV zpVDOF-zA@7pu@?h1T8*CJ|*;I)&*JyH6Z^P&+NdM99I5A+9C2E1EjAm{{eHe11}E6oh;f*PGF%Q7ngX&Fv8 zrH>q1+Po)gcm#g*!{(q0EzFy1O$CqPt<{nWxLm;CJOwfbUklI@m0nQgYFvH@VNoJK zpaE0QeGZtuXaWJ+hP0vbtwn-5E5DR{>z9)CQ2ADcaA)Al7-}!WqxvHGmRm#^pC{j1 z=owbN6(1_!+A>6Tlr7(yNFBq;x8g(PTdRjuqUBqc50-CTnJwR1X5?EFG`B4&6Oc%+u7rv(h0rBjq6@(kFRc;rQ-!f}p^%e8yuG6v{pmnS8g&7oO!;b4p8EopQ&fX( zjXb?OS#4z<>3;BgFA zNCe4lDSv*oU?V-BJvpM^Ha6g=hKxN52u z^g(BfIaIX<>msAl!yPY$Qe$1=WVnK^R3i7w;xI^~Wp6bi&MgWvaduVPW06 zKjLZm59#a~@v8-|g@1s=oiCgy3ME&}g}xN0J}qnc-MV|_s(ST@w^{bxtCqFCz4Ax( z>R0kht-4sIm8(vtlJlsJP8WvxaT!1OM)qE;o)fDnL|-!Zg?bJHB9DJaZYXnE2LL8D zvm&1$v*sKmW)!8*XE#!fv^*($jt21$WWA!vlaj9=!ax`-Utbom4x``hP(&n_^zZglo<5(O&tQFsFa*`d$>lyQv{o{&eT)Zb4lFsl zFr&1-Q(Dm}r92Ldw4Q_yNb^+YTV{?aWOb!-Wa)~fp5E1y3O%kHn^UYdNvRor(Z2Ad zv@cj|PpWf8=|T3sOC5#_I9`@qUYw9V5Zey1ii6xD%G=i-jQs;X#mA30uQ`sA>>pGQUk?o@3&QKLRY z-X+e=e6=CHrZFc7t5dr$3}Ve7TESB$?CR)ouoG)*LkKvLq9A{PxmbWo6&|%lnY`SF zN)gwtF6Q_sgnfzhd~TqO6aA%pCW|A5&d@#WrPb4N2A{zn$(jBj$=rAKneJ)%83WKq ztvI1J8E%pct6ZGtVf8=(-w^~rUV)EjK-RFsRpPN(lIzs$yV>jNC(BMBsZo3RC8wlM zZRCrc5V#t_kcg#P0#j)Ns?}$m8=$%x5FbHdm8%y2YW+N*K|ut8>Vn@K=`r=J> zc7-#z!bOJSs}~}`#XmeJgH=D(np(sTs|^(+;Tixn)(X3<^#Sp?V$}rn9*qJH<;do$ z4b>sNs!O-?-oNQHs93moD_pDpgT-DLyi~R+p!6?Jx<1P$d_k+HM@#uxA9OyT#aQ$> ztnPk<;i@-^$XVrPKq6Aqi+LXKrKv-veNyt$;*>ly__noB7}swC>)@x+KyZ~z za<@QU)P}CI>4r`0W{Ews_i?5ZlbJ$w!w%+gHF9|zR_;(=+bs`XoM#H?oxNo%*pXcA z6MYDOu$y|`ut?tV|7tZ9O4!NS!1ALlZL2l61!;B!{+K&^I2X* z`Fmf4q!U7Ua)`myL5!Qz=}gf-oeeH8=^rgiQ>$GCw+KZ49YrC*YapuSEv4F?r8Ln{ zhJ+3~mNO_pdJt6~>{vL$YE+4d0w{@wQh^H&3Bm)dzAD7T9CjKf*~&ZWMOA2qOYQ%R zmJRyHx4Ie^hScj4!`@5n4LC88?FDKD3H`u#`otm^{B0;Q;W~I)-egADm#bu#yVPeL z6j-yzif#pHVDu_>+f!Wg)3mJMaefL~1|xzQ56LgtX(%}9EDSF<$Q%m?dpsshAh@^p zPqNt{<2}zM0$-M<2y{hw+iVxjh*?G@Tl8-#4=wj2Yf^j{!4fbdN^2PNe?Q&TB5 zRmi8NbLCikGK(Cyk6tgGR@tz;z z@ls#ESy}i0*e^Hg&_Ms7Td* z9<@VKc4$0zq2(o1_|R(dcr8uF(2vjNL|Lus`aQ#z%Zu1@X!EuML~>-7iU zj~#1m(DgT6)HjYR$&Zk!8pwU>X^BY+%qaV(fnUme_l;?8qR_p_qvlJu0!3SPTyg zk2w$Mp$mD|P?T7Wek>0ZOis+6T8ATawE&czbd#=}X^DLsT=fm~Fg-PXZjI@w;TERv ziL|La+!BJH#;%}EfpwEFMWq#mmG31M&;qp$^yl8d`QQg&rDT$;3FQ1XwfQ-QZg#XC z>bb32g=jqfZjtLgBA%#Z9(lroLs(AJXP=SN^gy2msqhk24J^qadF#|}lffXzKpj~a z0<47E5pNq@rnn_BIb3|1A-3ZF@7Sfc@xD)2ek0y@VD)I;r8`^SL*UGRf8TNS$ zyRbIYIU=vFbB2Ainky}^b3s%krhQwK2K=VIRQ&pF`kXz7G(bH*o4c|`bQF4pY~k)J3{e{pH5!;nT$trh_k)c zr)xdeUOgmB{4)%BJ*`bTeR+QTvHo7(xiwWxq=kfQ|CZNyL5XzTjmvoew?A&v7BVYuYbaRr82OV6|d@{#g+rPydEi!d| zUZ%WsrraQ!U*6HMWqvz+@BW4@sX+Kcm2zvI*~&whP(L#tl623tErN@cvdo}>)JNJjJoAn#Q4@i`1y4pRW%qU7dk&>Ac z!)hX^St2(Hio0;VoR7FerEUF$W>YKQJ_#M3sK2dPTrsy*;}dqO0|Xk4Pd3-+ zOnadvo7%e^@@>GMYR?sE zx<|@=f~rsozNavIVDrRg7u~&05_$R4bl1}|fyDO1sm0oH{|%&ZgFPWOKCaN&a^jdW z-sfDlhdaW>o{gt?Hl9%OVQf0Yx$InLAw2V;9 zYG)_6T|JuhfTA?NdBdPXreUNWmGsJtN)|D#9oIbKzID?78Ssh+z&(m=X>hj->>0@l za;5guoZ~rx-V8IIRP@mCq@st8XQWiJ?~BGG_A_0ujt0iVmcxvEzqx=JSt28f!4uXa zicZid(rXypOg6|hf+}F^$GI$M~#_4*q@xiNO_$LLqX7FLIlzR)!9$hZ#lelV$ zdp;c(o809P^d8hluE@z5u9_}~EC)5$^d$}GF2`7%KeJR)8&Z5vp^!J_{py-EOa*@U zYN1`8FOj`w?;_d5Yxy@XI*Wgu?66QNp?Ze=g!=wfXUt%0=HB>+b~ZlNMtj2qriTN=i%D(iHUa{jQ5T3T<2zU=nu3yI~-n~ zOH(0|T01U3%X$J!2Tl2;XG-s=@~7LD+uM%t+`D;E!a1p4 z3>v!fl!pp}-Af;<>-iIqmnsheTBUzX2qaMGhdpdQ0^=d~CRI7!Ez~Eyh*U=F@mujv4uU_#Vbu~cafx6y^bobY$-WmU+ z?k>ox)eg3oGKH+_viPU@D4@Yf#vOo5Z^y1Wb>AM1T=?3H^NyNYvl6(0dEMWX)vuuT zeBruUE`!ULrxrj1wF?1OQAg}k#IgqNCyq5R0bDPxudR`k|7aA{Ju3k{!JW8Hg$K2B zL(_u}ulpf~_hJ5i_^|o=GjUD)K7!xb>p|3GhUokM`EBm!IqfNi`s>n)RsT4DU4T&h z3TV55EPrC~dk6ayquH^-KQ{ivNKV;nFdn0C{~<786q;2$#Gc|sN%~*1r&vwhuqFnS z`Um=RaaMn@kEoZQsd4^8?IWO`k!f>JJG^{*(wAg|w$-R{w8nADhPDObqWtNP_6Z^L z8hfyoLOD4AjAZSoH%Hr=y!Z0-B=v~n3zrYK87fG5gEeeN!_%S^fzu<4SKeS=-_siRlh<+Il05*7|$C&$Vl`x0K;Kc;~Ta_2vlm<7c zvHy-(t6jlQFFzWbjK6E2RM?($w!<<*@bD2ZXL5p{F8>>e!7YszmhOq|;43z&0_8>-A4}WeGhPP)q z4+LYfa@w=>^m3QT+F*OmN5wb$_wNV)9weXFEQbF-^!t&@ulVZv$SZ!JnfO`$at^joIbKk6lt`-oG+t~{G!N!hN`%75 zK6`&@ad4~6o#@_k=+WrJPcUB?((Kz3~g#F3! z;t)vuqor*@2JBBB1LDKjpL`%nL-N!BSJ*?p zy8Q{;ujmKVqI`ai>ptOKmu$m#Fy1g^%iH!;4=<@N%fHXXF&lgeM#Zvm59v(%f}P6? zw0g@^)<3x&n_+WrdfTCH7C2!K2f`;S{-6)%$pzHRdo>+N-`JAPj!p0hH}&Nuovk|6 zT`4LEQE#Y*ml={W7ACG2vz>I)OK#ywWX zJ~JnL-$%Re?}cxkx>?ZbE5r9&^!Llb*I`Ef)!^Itl9`+@gzwEJV@~)U+^vbJuLNJm zSA#EJlfF89pP;{A4!*z9Bm0W@yC_xo3*kG(WXuWQn_v7w_;Od&`ZA&={@uLLZ?#qSdO9N={XBnr!jIu`+u3f%w*8w%#CXZUwMjW9Rk@ar z)LH_ig7)Y{S`BVT1FF}b@`z-xYk6Kt9~MOM$@kl0UX(qKlcCS%zVA#p?-Nfz&imtk z8+mW493eMi!H zqi$am3dD2dp{;BG;+gRe)BYY!sSg_eFzp}rmD~R!`=$rP9PRV$n^v*rL}EO|f8QbY zP0Oe#+i_jCebXfB_)_*wCk?4&IQyozL_I$3zb}V<)0$^yk_)jYqEu zA$7`s->q74Ul^h(|9v^^n-&jgLfbb*hD2uUn`HJs*S=}cefl4#@BRk2`i#E&&%2o) zt?zz4UxW1B*^l%RV!O!pA6O?H7aj9a&*?2Wr+p3gr?P(=sxKekgRj|g+_NF0n9Sc) z{-*I)UA~`xSMqlee@zHL785SvFT~$m{^s$wfJBtWkxhpL5SgEx>uue#_$#yB~5DuY8heW27xFfKhPtEUQ6RkE%k!<2il9Nvfesp=h zTJZv4Y3vWay1alLaWUlPB4Y3-(YxuLy!acA;HyjXRjowvj4G67Uddi$982WqMV9+6 z%Xd41CU4XeXEZ$PL*t8SP|n_IWT{S0c3Jy$L!N<#oWWOUrvLeLGmiKhBXl!+B#M`n zQq9m`J6)Y@IsfRn*WHv@ug9X>n5Ns{p;yuuBq!%tdvzPXrvft=)5b3c+87whI@8A7 zfuSsrzJ@H{-Inur0NkgCvcL>wo^A#>mcQ+}cY|(TBnZ}yO@Hx@eiU-Kh`XUSk0}l_ zbrq^xGzRzL3;L0$ixpNH+>Ao^1e%=GfcNFM5lW>Cl&J&A9(a9Gw046p8`aLJw|sls z$!&A&o_n7HtVO+J%R7+ww2k1gNoj2n!!24g$@Ih%znS{fcaZU0N(B4z6BDm{4OS$b zQNSgmMoU<*Q>UXiGYoICVX8|8r zMk#;qadpWk>cL%VCpwK}2~bRHdHZlJD7s1hV2cL9vJqN)I(8J9L?Kf~5vmRMe1{ui zo%;T0wt&k(P`n!Aty^t|!ik%{+mi;FL^pD>I)MZb)FitnbOD`JPa-vbhzl(cT%eKnaWoa=+S=icFQ%}7W*iLnt zG32Qig#<+xx<>tYhiKh{DP)-`+aP}x>PRdLiMUYx8WnIpDpfHbM#&G5Uo_x8b;*|O zrfTrCO&=>l0}Wj!4I!uwtK(@X-OOT|VOLduGPPf*PER+p>A!XUC{1a_kBoQDB^j@4 z=(E?}b#7hx?s}A{-29EX`^39u3B6mqZf0OS5kCGV@O=dPw0}DPOkBY~M_$4|M=e^n zAW+EP(fl38-{HyH0-VqRe(T%fgFOD0Qy$nxwdE7^T7u6+7kW0Lc=c_q2lAF3lti_K z=&FI}lj2#?Cl5p)ksa+vHA^bl8yy>b-{`cA5SM4hq@suRClx)kKS%xf z?u1*j{AjSbxE>oKFc=4kkIK5+>NCm?-YrcPuyvdB)DL(9kri+77*WKF^(>I95AF7yk?ruXx=W>$#I5;tDr0Ha(ck zN;3>)EB)|LiocA_(x5DL)(P>0_UM_s7wi=6o$rXAL2sUa2)!A$&bkLT0QDdQqTx~ZTqKf$%i6UCCdaBMM)e&)EPOTYJJ4KT_ZmUf z0Xo+;?b`=#B8BDcY8co!)3_%ftxsMylOnD3s=lkhE47^Qh~6!Y$h?_( ztUO1WJp0)LdAK;DwrtmBjE_^Am@PILt#t8FVXL9=MAqW20apW56oPNNr=DH5{%aJ+j zb*Q+1c@BiaR#PknlkQX6!e!RE#p~)`v+8(GlD7;Uogwb&)>hnq<9~anRkzbR7R7q; zs#fhvPJcXvL+$AY^7@}%vuda9VL4o44r`U_ntnhAq&whv63ynr@klYcD}F^W>G5q& zQRQC0AJNRLZnA=X{p#SzgZ(_5Cs0eFb7~W`X6>=;*kJJ(bG0kJ-5Fn@E8*iWN3>SU z(_66#srK4`{x_aQv|@YcLhm(V(x7@DO$)HV*B6EXrZBb2--gn`J%_lB_d!E=qZ7ME zG_e%BX3V^Yg+o*kljIdF;eyZVb9(gRJAxNM93QcQ`eiVU&gLR^f`;P6rKRdy&V&7v zE-hYH#o-Sdi9z#!omfHt^h415QXYz;A~|5rA67FQ*o?7b;nx;A@zN7YG%TB<)hwLqeAjABBZKy9o~pKQ-3%c8V5R- zs#BIXMg_3~+99o0pATZL8O!HESRPkAbrE4=GG2|f3D;IOl*9-z zQ|H;kjPX`W2gX}fB0M>jLYhC2@h`ktmu!=g*u`q*ptbXc!G#xDvqvpT%o&A6X(EDA zsW&mh%bgMJRYpD=+lcdZacsL`k@{-FA?4Pv^`_kgTUEYcx;r6N>T;iScw1Y+I=k2~ z;5eBMr;8c@v29ELM_4vXCUuZ6PRWrIh`UB@O&zMkfbeO9P}t+`uy!^K zo;6M4H);cA`8PAzf$>J74XO6(r9F)zH2Cu^nFdqz(@=c5Ak{AXcWHPCz8uB?$7X%+tM@M5+eo#Y&J%3riYhgMaanVWcT8)9wi!xJ^XH@ddOJvz+Wcbp zAez6Wjh&cL`)k+D&a<8gC1>Yvddn5=EGX=(vgfUE&rF)AFKx{OdVSG#e!o;!j zw^&DD$aqXXo&JWTZ^^eGTcEe4cBsrBN-ly22OiS{8+=^uqE>^>wf0J;!J9 zEBxN2qoKeczYDFAy(7|}ixIjP+C2|Vw?(i5IOR*#1aOvcX=f?3n_w9UR|W$#H_Dt=#dT?-!!I5IT6I5IYM?Ht96{t#e+) zSJNZ5W8UdJ?;(wT0Q+n3J8q97Yk@FCrY+Nhfh z9U(O35OZgt-zyKHA4Feie3P?*4a2;J_%~`iL|inDFypy;O@K z>r{SB=0~Ybz0NHi!;e+7q1EOF7AMc^4?al__vJ?dl%_S43kqW+)~qbB=b<~wTk!jq zD&8&?=JjI}7F6(2PdtxL&&HVra#U)b`Zr#9!+so$FtTM1y|_OCt)G+LZ_kG{=Uu+Haa>j`$Pe81Bf zwDlG>qZuC~d$YYxB?)CXFo;VF+Gdv77bQm5)~V+unno6_?f2!ynz&Z+C~1+kW$?ii z5*KY1YSLd0^!Myx2CNCyY_=8;FJ!%<(8-$ylIt*X<*1;K`)kkdsetAt=EW|ixdpkJ zgWn>#SABkSA$6Jrgi_xkDD#M4As%m(QU0d+Y1eLQz{HMIxUf5>EI1 zM6txj3O3Z$hnfpi^>+{Oa{B@{A=X(TTRHCWmUyoD3&iYv`aaM0kX+J@Pji_f(O+zu z2!7O=_cb~B0f|4X@~+b# z9$jR5G)sCUnRMjCCh|5}OXA3-PW@1N1d|zGLuZ>FO(msN_o$TgB$4#!8`2{bQA0KK zXe2$VQ@=sl&j6-!N2WkXU3Q;d>@udt2DX?=ZKMW+m+taXJDll-WR<2=mC344{`l6p zgN~R%`^iKtfNaLooje`#z0=s6_4e`h!1nRDxley@m@SVd!>kyT_$oK|=!^GqpXLgE z11jVT61;sLQ^EJ;;>_#2)3M*L&1_O!=Hy6y|5RFgm))Rn-NFNjn5*{@eFJr|&5gGf z;z#*0Rm3VY9YTe@wpP^%MseBAzUmGd9DAneZ(^AKR!VI?hmCR-l%b2-#Bpc>++pW40+Hs zW-xHmgou@1i+Ordmo3bY36dhd{dmD9Q$`|nL7$Wv$xz~33k`e>zTP$rz7|{4eXy*A zVYR!Nr#fpx$ytxH%DSe%t`T?PYp|Bo9pzx4SY@#I#EX%82$lKbrru*6FIubcu;gh; zuu+-I4LOIWNAElLCxMZuVD3Oz?Uj8@--U8!cXZ)+GLAnBo3-UBb-ymWGx*FhXZh~l zJV*DJD7|bn>*#q=ZR&QsDu?(d@;%$xIbGo;UDYI}dwI2>raqLI?z5(Y4zf1X1Z~1r z1Vq9S79yF{c+IMD9a4@$+{0fNNgSpvTjhzL+{3})r(Ca(vSxYlA{9o8p{|s@SxC!w z|0K(bPWY1Umo=(9mh`Plx)18_9eCm4XQG}Ly_`MA3Pk9643DaNFp`6Lg<0qybPe$F zV6m-Zk;U@b=Duds_uB219;E9Weppq_8BLx(JTq6$)(PqhG@kIa#WNT21-Bmbd=~`==58KT)`8 zaJKG_#PDUrli@O3!}NiE&Xxr{I8EL!b8HUwEjvZ_9Cj8zhFV#>V?8gyMN}Ph1h~!7 z!MozxqlWNy#H8z029dbO^fD9?wxVAyIJdG|2J)pZgM@4Mh^XCKubGgwbr4RjQ2A~M zB}VPzPy4e|oyZa_73_t@iwCEhaO8koMEsA+<$?SD|3xDN`*F;?^KCQ~@0-X?W2Wc2 zC)j{I8`s=$(BZ{Sc?|)Bf^Bv!`Qv?gp4PWyhtgF%LzI>*Aot^CYMQ=?QO~tyzbRJo zWLOxf^VGE`)1NV#y52-i{V*({xV)_-mxwYDD8JYLb43GMIb?l$W7Sx84d$l7v)CqGbX9SQId9Eq~?o`bKVx0 z?+-o+dUo_qv_2}?XRve7IZKA_Ro@Ff8J$@2u}OZ{@j})%)xC72I*xVB5Cid*CvYJz zu;!lN>~$vj*P3>M_+gtVho>K}w=03x_r>8Z4*+hlbF=fsA1Ulv!ojF#LBO?if=o(C zUGbmPxf18WNJix<@#LTNcos0R(bU9hx0QwBR4M@Q)OGOe2C*4&5o2dEz1$4iPsE{Mho`lJji*jsdAP<$ zpT2xG*;o*vcK)$RVd(y1iBZQ>iM2k^PQ0}t@BjhTH6p?Vl$ZhJ>F(jwOBVAMaYUH< zykQJ$?zRICulEy&cL$-(k^aw~{&3{USDx7v5Vdk3CY*ujh~4%VD+1r$vg@5RZ6!Gv zCvQg8v$hOA4e&<+g^M+2o#m_HZmxXC9O(b3`=}09-yr$H+C4I!{rS)KALHc#>b}^? z@iF?lX~{F=yj}S_iI)lQ%72_MK5U)&56G9g1$Ge#fsaTGFdElxm3p@DZZ{{>eeL8> z--Fi_Q6;F);O$zSLul&Hc&@vkKzmA)}84NJlyjeYKf@t>ki<*-VA4}uFHQ&`~Q^P{w0*OrahP{@_;V#1{}By z1adTg{6O;^JptYP-$dI;S<{`ktz~Csl{MW%eKqQ5nxp5XN_WW2gW8=1f;SPLS~CwK z6Fg|s{kKHe30b>^@vFG8rt5SWxNtc;Bs0)K8B-4QnPo@F!aL-SvC8BC{2Y7Ed z8xF2R+Ml1@{&y*9&3!Oc#6aLVZtWQe(g zL2C(t0lud7qh*6QAh+&89hsBeky+A_{#~q&R7tjGT{5ILQxcF2*OknSHcI!a!T(0WVWoOk7q!085KrU zneNZPj&UPk4y!lsAG%{r%I?Z(l+5fH8+4IBQ6vY3WSW2fv2^ntJ@0W0MAY5l^0f~q zHh5gqo?=3L=OJHWjtZMvbk*~8Z~R%v^7|L4=QF$K+CNZ9yemK6iC38!cxw~yGDk=i z;-y?y5!F>pFue;vUJurSdx_9@&Q}__ivQy+lvi7dbf2f~96KSKvAqMIT zsSkfQFyzi@75Jn-*^FN?1)FXI6a*Y0Lx_dszc!Wss^EYVLBtW*My?NhKs_n- z6r-iL1r5F0$bH@9R`(Z*$E1t?A~%MPDRwTop6e%bBzjsN<6xNbi)$pJhZ;OBt^7Mh zl=(c@e_j4<*^h$pl<|Bu2P#vW^gxMYE7t+eLgx&^l& zGhC^dY1SN{iSedl%B(p&VJUh1shDbOPJoz^){G*FK_WY+)ch{izxP75RzojNgP1IX zPDU^lu4N6b53FI0HoeZ^!s^Gc8sb}vSjkN_266uKjI0U4K<}>w?>zBw45M8>hn>NC zb@i))WC988cFfbdi|bQ+cP`+ycjQXZO5AGi^N0mn0=EKUS*vohvvGEDeB0E9-C|uA z(mmzYL+WVN93ZMk~ieq+v*mYgX|a;AiGrj+JP zDa@JT&Xpn{UflFSK#*ZA3=PQQo_7Qc0(y1Pb6O#)j5!dvie{jiiZSiL*}J4^4@E<& zilUTQ!O0yqAismW_1Yc*+*mZ_6x*_qmvn3+61aNq-C5Ig+xj@D=(nNw(BQ!Ph=28tdw=}qz9 zF`SEUb+vTpE=ET*y+l%Pe$!3@rG$7kh;MyI(0y6{LlQ8oG8}Kq_|;bYH(Q<7a64H& zx5&_hkGWmJPbo$jjd0%MR7|*Fn+Y#`+{9nB&4f)`3Dub|QE4~+@jz~@RxZ!iy6ED5 zFUr-GtI)9;5A&CMthp^SQ_J*pL+bZ#Gm!eTbc`7b?nq4)TfL3F0cCOY>9lUiw);VJ z+cSUVsBEffdVn5<)b+3y_#KtY(4a@?HCmXNR6DjH`ur=Kz!du}Ow{!YP*L`@jO5>M z<#DdW`&^#u-h}(eX5YjLF&#RQ4hiH^-66A06~JJ5c|oA^<@{n70FPkH^fJ4j`p>7q zJ3|K|=WY^=s!<=@EyySrlqR#@doG|0rt&AA9#r{Asr+{M69dHLlBRp8B&_aCRWh)> z^-PdT)Z;Ivmw3Fd(R1B-%&lkRIz{hU=Idpd-$MCe=ed1D&XgrNQ$jgYN^_>{`FgG% z+?6w>C1=V-Ia6llO!4PTQD4i|w`X&v+?6wBNzRmtoGE?BKB?pCs)1nng6!X*~4#rl|44uj@2(-&?{z2Kb`kn z|EB!g(#gN^zJm1m*jjxQ3#T$yXWGkhrucKFcyp#WbEbT7Y_2KWlQZS@oGG%U54#c6 zt81ZDINUT$u6{mxf4tAXd6np`RPzlBuMgpS=7JF4(H!*jr})BRC(ppbKNRP7-T)Kfns3VHUe`b-v1bT z4944J7ePmwYUZa+HL(8-p_(0PyHAr#Qa~*n#|dxaR#&h7$hn;&=FiSh^do4sy(w3R z+b_(SGB;OBy{e|AHX9ztk8H2ZmCLgcLQ!^8$bcmw_1f*4KxKSQ;htIVOMmlH{nZyv z&vmnaEO2?YkQG>*tJZdR&Xm1J=fc>XIaBV+nQ~Lkl$E(s>Qx!U4RCRIT0etUX}>Uc z&H{2WR~U3#n@YMc8RG`#3O7|#qIZ6KWv+tl#ko?xl?Ucwc;>n8aHuKZ_yKUNSO5A{ zx}9)S5oI|!mei=)+stGLf!5OjX;-ge0~vLP>ZL=c$v@iecX5-O!eMo!DcExzW!euE z<^uShoGCBmN~u@xgX&oznJkST9R_{jOXo^~y@O(-H4; zc&;0Xpcrr!9Sz#unyXa%jX6`+=S*3XE2UnI$m)aBb6tX^P9Mso56}8?K{cAIzV?f9 zrp(QmGA&n%zCUP?ht-L{)gbTrmv;q6!cZ((GnBQ-)ct?ly$gJl#nt$q&2GX9E6)Ne ztTyWEZ*8MVHJY>yCfc9@(-w6@$Oe&{t)+;zwU|Y#2?Coy$g+s7t@f(D*xH*|YY}Q~ za{)rQ$;HdAWMf3E6BlUk0zn}8ea}3*xe400@7w?H{rm&ZK686!=A1b*bLPyMGeYi# zr^|6&-f3g9PZ#4?Z|oRU+KWODm&nhEQj<%|5m`mX=`vX7I9-fi)eXv;`;s65ayDwF zBpsLGDD8YluQ;YBQwzb|{Y@IGSQ^T9y8PFjKumf{zGGe2>0%PeXU|&KL6QL{*P4Bu z#~2txy^p5boa=e^@EqhBHq7R{fTw_`oM-+SHfIgbPkGky?B+SZlRn($^zf{7*qkTE zn2)$0F>KB`PMfoGl+AhRnKox9VWqrp=c(m+lxIE99-f0d!$wjbPXSLk&o_Bi@ce@3 zd7f8z4)cs4--~!Y&vO&cT|8l)6wBDLV^hak$J%(OjZGiMOaAO<@H2eu2#5B4#Lt<; zjT~!?b@CoHc649LF}Pe~&#DKOU-JBoC&Kd%j|12~$s=*!;r)A_O*|bu(}z4C;CGD% z7d$0AU*@Ue`96=NeTw%Mp8Y&MJZ^A#1LvX zyhDUP&hvMkD33v!i+Qf)naOiE&pOiW<~hKVjtIcqsW*T1#{ZH7HkhTFG*`;`&cLN- z==Z#xT43)a$lOnN;9?+VKm7!0>F??hWwIvZfIv`6?patsKLvgH$cxpAK@>*b@b%GsOH z7L-dj-PYj5m`Z3D5mH|{mLqkx?#3pG7_n^cWcqdzdC^i? zG=>2?aE_?YI@Ej27PIB>3~Cr^99y~OK^nUX@p-?xs{UT@fw=Cz0dC#t(cF61`B0e% z;ZP#e$|v$hgsuJT%ILSqxg}f#c=8sRtGq?X#hc?h{Qj1lp62-rPZQ4;p4~jJ^6cYD zv7}mUgZ|RehYcWT(VZJ=|36IYoX-CLDbj~NDm_~cwos}+bf zpU$85Pul7KckUw)`uXpC55CR&3@%!!Tjf;u84Q=G|ImE~Plh-+xSyD#9qx@7(Tjq*S4zJPOTb>^qNFW}?8f3@bLzwgs5 zC>fwxzE3ntGWlY3;|jD4e=$V+4wDpRWzps~3LWr-B^gcSjhC?XRr z3Y^o_B$$z;o%c+!fsmce*D4Q8(Lv_P#nvcumX*&(b%-;+pOcwWZhwDH<}}M}dqG!# z!z?yJR%Ej8z2Y`|{KCa(8K+d9x#Chn#rD*S%=k#T)fL~JcIE`m!Iaw;-~0c8J^y)Z zQT^-o{I4W61Ko%22Kawt&%dv|=l%Qbz0NYUz5P(YDcZYu*{R!G&L8}*YVS#MUi1`g zRKoSwFQ^Fe%zwSTe=9mIr^xI7aeLPdXm6N`|I&Q}ExpHw+&A!5NZ=Ir4U{q3aH3ys zNWTM>ZKt|Qi2px)-@tkf05N}jZHwsh|NeagedE&;{|$N_cXBAb z{<-J)sp$0=ONP+vNdfUcOs`)6T^~oU==13`|7+>hCB`cM_4_ft$F|R@>2)iRo`PO) zl@I=#^m->*pNd}X+kz-(d)lx|Nh5~HLZ0B6Dn;X>>h`TbVsjzqoy_VGQtTL z=b)UGS82vZSggRsoRhG~)H74)@gwcue?kyN7N-6CYPsstQSKK7{fsH`=NaiU2;uGt ztVa24n~LlyGf~m$x4?o}d_bd-5D;|DIjBe*5=%GLcXjgeMF=fb|1kZhBn|wrje5LC2?QtD( zL)+tZ5J*e>+wJi#J!3$7>;tU+_LwRh)4$dpvZP#OPpJr80OVew7cPdywgbnBcBm?; zB*x%`D7kGM!OoR(pwz>4zP5rxP}# z@T;#3mDv~HngfyUc%JM&QOY$${i@cfaV9G!x*!(7F^?~ z_J+o=%6IrGWXAFXk!K1kdk^SO(dYd!%yy3r(|~De{oS;dzTaRCu0i)3oU;7$jc0Qc z=U?WIzteHokcz~U6#-$^xm4w@PtHx&W$q~|Q-W;0zcSfY`*(W5X^l=exyANio=DSL|iRjEz|z{48|P+>4uf_bt~@?&nz45-HI!8vy%hzIdmuw_g~dJuN)OP zr)GEM=z5>!%2G>UWUwJM*qF-6?)@BMPUE0y1Qo=}F~aVs<#KM9;=~L{`~l-xtJo(& zy_zZ~?2MTn>Q7^-62?Mg%K8$DhlY!*o0@%Tbf8QRqw zB9q{Jc|l8HA@%TL&gC2P9cmn)3A0Yhf)>~`H>%K^)k0~>Zm8dlqj#=I*wcfHY$=t7 zAEwO>I#=WbH#y>O0-mQdv{jd|gc4Td>unoh$@&i52&lr5nS2_Dfs^~~W^kh66EEzW zDIhVy^4+@PBI$k@-91cG+0>H^E~mqckg$DT9Tu+SA|L>AtJfeCGbEMCPY#*P^DH6W zimzFGk1fTA9ccAu@hS18;rq4t<}AaPj_(KJ%U_Of7`~8BS%=S#uUdS!N||Ti`=Z` z8M-&sibwaR`*4NsqTf|sHgH_Z5ralC;jv|0O8utXMc}8gX;t;!H-t*Q(RG+jS;w~kn*)_YB1l}Xv(HXIO)tb`y9s!L z{`&gUrNHmg#GD|)nl!I$XJ2%Ney?}qp)kD)P?H3`DK8=duGcDCwvfZSPEz!t*O4ei z+rOG`pBK?%V*6LlNcmYN>F5fwKj81(Ni_!^P!C=eq193Iy>{ui zzmTs7K#*u8l?M(&k=%na%3<`wo|t}C2mjtd$*FW$r%}6AM#BfBDh#+edSJ&s(8bk~ zGxafQ?tz6-UwDG7x(ePmy`kljf${7b`ON26TYrbq0KfVrFPbN#v>bZdsy4EmA@a%J z5~%~c@Y4jGNixP~IT1bNyndFpf9qGzk;1P&!-phaCCP+I9RO1q z=S!s8ezlVq8JU(407LzgS(92tsDp${&}0)(sc)G&pE??UC&pOQNZXL~AmJQ{)(|vG zb_`1dk2Qf=BbY_8oyCG(eP_4;lPwjKHai$>aV_b6jM^DXucOzSQ%1sSQ~#J5Jm8Ym zgQtuf79*t=2<1Q#^PdupE!G;Dq3+xxNqZZ{v#T_c

NrEh8N!gY+qCG{Au}=MyrRv5(=^oVS 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 ~wv7mvztbb_Nw7WHRG0`=E5}DZz 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≈Z@} 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 z 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 J|F=)ze*vbTT`m9s literal 0 HcmV?d00001 diff --git a/tools/img2bw/freeimage/FreeImage.h b/tools/img2bw/freeimage/FreeImage.h new file mode 100644 index 0000000..52c1f3d --- /dev/null +++ b/tools/img2bw/freeimage/FreeImage.h @@ -0,0 +1,1059 @@ +// ========================================================== +// FreeImage 3 +// +// Design and implementation by +// - Floris van den Berg (flvdberg@wxs.nl) +// - Hervé Drolon (drolon@infonie.fr) +// +// Contributors: +// - Adam Gates (radad@xoasis.com) +// - Alex Kwak +// - Alexander Dymerets (sashad@te.net.ua) +// - Detlev Vendt (detlev.vendt@brillit.de) +// - Jan L. Nauta (jln@magentammt.com) +// - Jani Kajala (janik@remedy.fi) +// - Juergen Riecker (j.riecker@gmx.de) +// - Karl-Heinz Bussian (khbussian@moss.de) +// - Laurent Rocher (rocherl@club-internet.fr) +// - Luca Piergentili (l.pierge@terra.es) +// - Machiel ten Brinke (brinkem@uni-one.nl) +// - Markus Loibl (markus.loibl@epost.de) +// - Martin Weber (martweb@gmx.net) +// - Matthias Wandel (mwandel@rim.net) +// - Michal Novotny (michal@etc.cz) +// - Petr Pytelka (pyta@lightcomp.com) +// - Riley McNiff (rmcniff@marexgroup.com) +// - Ryan Rubley (ryan@lostreality.org) +// - Volker Gärtner (volkerg@gmx.at) +// +// This file is part of FreeImage 3 +// +// COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY +// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES +// THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE +// OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED +// CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT +// THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY +// SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL +// PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER +// THIS DISCLAIMER. +// +// Use at your own risk! +// ========================================================== + +#ifndef FREEIMAGE_H +#define FREEIMAGE_H + +// Version information ------------------------------------------------------ + +#define FREEIMAGE_MAJOR_VERSION 3 +#define FREEIMAGE_MINOR_VERSION 12 +#define FREEIMAGE_RELEASE_SERIAL 0 + +// Compiler options --------------------------------------------------------- + +#include // needed for UNICODE functions + +#if defined(FREEIMAGE_LIB) + #define DLL_API + #define DLL_CALLCONV +#else + #if defined(_WIN32) || defined(__WIN32__) + #define DLL_CALLCONV __stdcall + // The following ifdef block is the standard way of creating macros which make exporting + // from a DLL simpler. All files within this DLL are compiled with the FREEIMAGE_EXPORTS + // symbol defined on the command line. this symbol should not be defined on any project + // that uses this DLL. This way any other project whose source files include this file see + // DLL_API functions as being imported from a DLL, wheras this DLL sees symbols + // defined with this macro as being exported. + #ifdef FREEIMAGE_EXPORTS + #define DLL_API __declspec(dllexport) + #else + #define DLL_API __declspec(dllimport) + #endif // FREEIMAGE_EXPORTS + #else + // try the gcc visibility support (see http://gcc.gnu.org/wiki/Visibility) + #if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) + #ifndef GCC_HASCLASSVISIBILITY + #define GCC_HASCLASSVISIBILITY + #endif + #endif // __GNUC__ + #define DLL_CALLCONV + #if defined(GCC_HASCLASSVISIBILITY) + #define DLL_API __attribute__ ((visibility("default"))) + #else + #define DLL_API + #endif + #endif // WIN32 / !WIN32 +#endif // FREEIMAGE_LIB + +// Some versions of gcc may have BYTE_ORDER or __BYTE_ORDER defined +// If your big endian system isn't being detected, add an OS specific check +#if (defined(BYTE_ORDER) && BYTE_ORDER==BIG_ENDIAN) || \ + (defined(__BYTE_ORDER) && __BYTE_ORDER==__BIG_ENDIAN) || \ + defined(__BIG_ENDIAN__) +#define FREEIMAGE_BIGENDIAN +#endif // BYTE_ORDER + +// This really only affects 24 and 32 bit formats, the rest are always RGB order. +#define FREEIMAGE_COLORORDER_BGR 0 +#define FREEIMAGE_COLORORDER_RGB 1 +#if defined(__APPLE__) || defined(FREEIMAGE_BIGENDIAN) +#define FREEIMAGE_COLORORDER FREEIMAGE_COLORORDER_RGB +#else +#define FREEIMAGE_COLORORDER FREEIMAGE_COLORORDER_BGR +#endif + +// Ensure 4-byte enums if we're using Borland C++ compilers +#if defined(__BORLANDC__) +#pragma option push -b +#endif + +// For C compatibility -------------------------------------------------------- + +#ifdef __cplusplus +#define FI_DEFAULT(x) = x +#define FI_ENUM(x) enum x +#define FI_STRUCT(x) struct x +#else +#define FI_DEFAULT(x) +#define FI_ENUM(x) typedef int x; enum x +#define FI_STRUCT(x) typedef struct x x; struct x +#endif + +// Bitmap types ------------------------------------------------------------- + +FI_STRUCT (FIBITMAP) { void *data; }; +FI_STRUCT (FIMULTIBITMAP) { void *data; }; + +// Types used in the library (directly copied from Windows) ----------------- + +#ifndef _WINDOWS_ +#define _WINDOWS_ + +#ifndef FALSE +#define FALSE 0 +#endif +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef NULL +#define NULL 0 +#endif + +#ifndef SEEK_SET +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#endif + +#ifndef _MSC_VER +// define portable types for 32-bit / 64-bit OS +#include +typedef int32_t BOOL; +typedef uint8_t BYTE; +typedef uint16_t WORD; +typedef uint32_t DWORD; +typedef int32_t LONG; +#else +// MS is not C99 ISO compliant +typedef long BOOL; +typedef unsigned char BYTE; +typedef unsigned short WORD; +typedef unsigned long DWORD; +typedef long LONG; +#endif // _MSC_VER + +#if (defined(_WIN32) || defined(__WIN32__)) +#pragma pack(push, 1) +#else +#pragma pack(1) +#endif // WIN32 + +typedef struct tagRGBQUAD { +#if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_BGR + BYTE rgbBlue; + BYTE rgbGreen; + BYTE rgbRed; +#else + BYTE rgbRed; + BYTE rgbGreen; + BYTE rgbBlue; +#endif // FREEIMAGE_COLORORDER + BYTE rgbReserved; +} RGBQUAD; + +typedef struct tagRGBTRIPLE { +#if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_BGR + BYTE rgbtBlue; + BYTE rgbtGreen; + BYTE rgbtRed; +#else + BYTE rgbtRed; + BYTE rgbtGreen; + BYTE rgbtBlue; +#endif // FREEIMAGE_COLORORDER +} RGBTRIPLE; + +#if (defined(_WIN32) || defined(__WIN32__)) +#pragma pack(pop) +#else +#pragma pack() +#endif // WIN32 + +typedef struct tagBITMAPINFOHEADER{ + DWORD biSize; + LONG biWidth; + LONG biHeight; + WORD biPlanes; + WORD biBitCount; + DWORD biCompression; + DWORD biSizeImage; + LONG biXPelsPerMeter; + LONG biYPelsPerMeter; + DWORD biClrUsed; + DWORD biClrImportant; +} BITMAPINFOHEADER, *PBITMAPINFOHEADER; + +typedef struct tagBITMAPINFO { + BITMAPINFOHEADER bmiHeader; + RGBQUAD bmiColors[1]; +} BITMAPINFO, *PBITMAPINFO; + +#endif // _WINDOWS_ + +// Types used in the library (specific to FreeImage) ------------------------ + +#if (defined(_WIN32) || defined(__WIN32__)) +#pragma pack(push, 1) +#else +#pragma pack(1) +#endif // WIN32 + +/** 48-bit RGB +*/ +typedef struct tagFIRGB16 { + WORD red; + WORD green; + WORD blue; +} FIRGB16; + +/** 64-bit RGBA +*/ +typedef struct tagFIRGBA16 { + WORD red; + WORD green; + WORD blue; + WORD alpha; +} FIRGBA16; + +/** 96-bit RGB Float +*/ +typedef struct tagFIRGBF { + float red; + float green; + float blue; +} FIRGBF; + +/** 128-bit RGBA Float +*/ +typedef struct tagFIRGBAF { + float red; + float green; + float blue; + float alpha; +} FIRGBAF; + +/** Data structure for COMPLEX type (complex number) +*/ +typedef struct tagFICOMPLEX { + /// real part + double r; + /// imaginary part + double i; +} FICOMPLEX; + +#if (defined(_WIN32) || defined(__WIN32__)) +#pragma pack(pop) +#else +#pragma pack() +#endif // WIN32 + +// Indexes for byte arrays, masks and shifts for treating pixels as words --- +// These coincide with the order of RGBQUAD and RGBTRIPLE ------------------- + +#ifndef FREEIMAGE_BIGENDIAN +#if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_BGR +// Little Endian (x86 / MS Windows, Linux) : BGR(A) order +#define FI_RGBA_RED 2 +#define FI_RGBA_GREEN 1 +#define FI_RGBA_BLUE 0 +#define FI_RGBA_ALPHA 3 +#define FI_RGBA_RED_MASK 0x00FF0000 +#define FI_RGBA_GREEN_MASK 0x0000FF00 +#define FI_RGBA_BLUE_MASK 0x000000FF +#define FI_RGBA_ALPHA_MASK 0xFF000000 +#define FI_RGBA_RED_SHIFT 16 +#define FI_RGBA_GREEN_SHIFT 8 +#define FI_RGBA_BLUE_SHIFT 0 +#define FI_RGBA_ALPHA_SHIFT 24 +#else +// Little Endian (x86 / MaxOSX) : RGB(A) order +#define FI_RGBA_RED 0 +#define FI_RGBA_GREEN 1 +#define FI_RGBA_BLUE 2 +#define FI_RGBA_ALPHA 3 +#define FI_RGBA_RED_MASK 0x000000FF +#define FI_RGBA_GREEN_MASK 0x0000FF00 +#define FI_RGBA_BLUE_MASK 0x00FF0000 +#define FI_RGBA_ALPHA_MASK 0xFF000000 +#define FI_RGBA_RED_SHIFT 0 +#define FI_RGBA_GREEN_SHIFT 8 +#define FI_RGBA_BLUE_SHIFT 16 +#define FI_RGBA_ALPHA_SHIFT 24 +#endif // FREEIMAGE_COLORORDER +#else +#if FREEIMAGE_COLORORDER == FREEIMAGE_COLORORDER_BGR +// Big Endian (PPC / none) : BGR(A) order +#define FI_RGBA_RED 2 +#define FI_RGBA_GREEN 1 +#define FI_RGBA_BLUE 0 +#define FI_RGBA_ALPHA 3 +#define FI_RGBA_RED_MASK 0x0000FF00 +#define FI_RGBA_GREEN_MASK 0x00FF0000 +#define FI_RGBA_BLUE_MASK 0xFF000000 +#define FI_RGBA_ALPHA_MASK 0x000000FF +#define FI_RGBA_RED_SHIFT 8 +#define FI_RGBA_GREEN_SHIFT 16 +#define FI_RGBA_BLUE_SHIFT 24 +#define FI_RGBA_ALPHA_SHIFT 0 +#else +// Big Endian (PPC / Linux, MaxOSX) : RGB(A) order +#define FI_RGBA_RED 0 +#define FI_RGBA_GREEN 1 +#define FI_RGBA_BLUE 2 +#define FI_RGBA_ALPHA 3 +#define FI_RGBA_RED_MASK 0xFF000000 +#define FI_RGBA_GREEN_MASK 0x00FF0000 +#define FI_RGBA_BLUE_MASK 0x0000FF00 +#define FI_RGBA_ALPHA_MASK 0x000000FF +#define FI_RGBA_RED_SHIFT 24 +#define FI_RGBA_GREEN_SHIFT 16 +#define FI_RGBA_BLUE_SHIFT 8 +#define FI_RGBA_ALPHA_SHIFT 0 +#endif // FREEIMAGE_COLORORDER +#endif // FREEIMAGE_BIGENDIAN + +#define FI_RGBA_RGB_MASK (FI_RGBA_RED_MASK|FI_RGBA_GREEN_MASK|FI_RGBA_BLUE_MASK) + +// The 16bit macros only include masks and shifts, since each color element is not byte aligned + +#define FI16_555_RED_MASK 0x7C00 +#define FI16_555_GREEN_MASK 0x03E0 +#define FI16_555_BLUE_MASK 0x001F +#define FI16_555_RED_SHIFT 10 +#define FI16_555_GREEN_SHIFT 5 +#define FI16_555_BLUE_SHIFT 0 +#define FI16_565_RED_MASK 0xF800 +#define FI16_565_GREEN_MASK 0x07E0 +#define FI16_565_BLUE_MASK 0x001F +#define FI16_565_RED_SHIFT 11 +#define FI16_565_GREEN_SHIFT 5 +#define FI16_565_BLUE_SHIFT 0 + +// ICC profile support ------------------------------------------------------ + +#define FIICC_DEFAULT 0x00 +#define FIICC_COLOR_IS_CMYK 0x01 + +FI_STRUCT (FIICCPROFILE) { + WORD flags; // info flag + DWORD size; // profile's size measured in bytes + void *data; // points to a block of contiguous memory containing the profile +}; + +// Important enums ---------------------------------------------------------- + +/** I/O image format identifiers. +*/ +FI_ENUM(FREE_IMAGE_FORMAT) { + FIF_UNKNOWN = -1, + FIF_BMP = 0, + FIF_ICO = 1, + FIF_JPEG = 2, + FIF_JNG = 3, + FIF_KOALA = 4, + FIF_LBM = 5, + FIF_IFF = FIF_LBM, + FIF_MNG = 6, + FIF_PBM = 7, + FIF_PBMRAW = 8, + FIF_PCD = 9, + FIF_PCX = 10, + FIF_PGM = 11, + FIF_PGMRAW = 12, + FIF_PNG = 13, + FIF_PPM = 14, + FIF_PPMRAW = 15, + FIF_RAS = 16, + FIF_TARGA = 17, + FIF_TIFF = 18, + FIF_WBMP = 19, + FIF_PSD = 20, + FIF_CUT = 21, + FIF_XBM = 22, + FIF_XPM = 23, + FIF_DDS = 24, + FIF_GIF = 25, + FIF_HDR = 26, + FIF_FAXG3 = 27, + FIF_SGI = 28, + FIF_EXR = 29, + FIF_J2K = 30, + FIF_JP2 = 31, + FIF_PFM = 32 +}; + +/** Image type used in FreeImage. +*/ +FI_ENUM(FREE_IMAGE_TYPE) { + FIT_UNKNOWN = 0, // unknown type + FIT_BITMAP = 1, // standard image : 1-, 4-, 8-, 16-, 24-, 32-bit + FIT_UINT16 = 2, // array of unsigned short : unsigned 16-bit + FIT_INT16 = 3, // array of short : signed 16-bit + FIT_UINT32 = 4, // array of unsigned long : unsigned 32-bit + FIT_INT32 = 5, // array of long : signed 32-bit + FIT_FLOAT = 6, // array of float : 32-bit IEEE floating point + FIT_DOUBLE = 7, // array of double : 64-bit IEEE floating point + FIT_COMPLEX = 8, // array of FICOMPLEX : 2 x 64-bit IEEE floating point + FIT_RGB16 = 9, // 48-bit RGB image : 3 x 16-bit + FIT_RGBA16 = 10, // 64-bit RGBA image : 4 x 16-bit + FIT_RGBF = 11, // 96-bit RGB float image : 3 x 32-bit IEEE floating point + FIT_RGBAF = 12 // 128-bit RGBA float image : 4 x 32-bit IEEE floating point +}; + +/** Image color type used in FreeImage. +*/ +FI_ENUM(FREE_IMAGE_COLOR_TYPE) { + FIC_MINISWHITE = 0, // min value is white + FIC_MINISBLACK = 1, // min value is black + FIC_RGB = 2, // RGB color model + FIC_PALETTE = 3, // color map indexed + FIC_RGBALPHA = 4, // RGB color model with alpha channel + FIC_CMYK = 5 // CMYK color model +}; + +/** Color quantization algorithms. +Constants used in FreeImage_ColorQuantize. +*/ +FI_ENUM(FREE_IMAGE_QUANTIZE) { + FIQ_WUQUANT = 0, // Xiaolin Wu color quantization algorithm + FIQ_NNQUANT = 1 // NeuQuant neural-net quantization algorithm by Anthony Dekker +}; + +/** Dithering algorithms. +Constants used in FreeImage_Dither. +*/ +FI_ENUM(FREE_IMAGE_DITHER) { + FID_FS = 0, // Floyd & Steinberg error diffusion + FID_BAYER4x4 = 1, // Bayer ordered dispersed dot dithering (order 2 dithering matrix) + FID_BAYER8x8 = 2, // Bayer ordered dispersed dot dithering (order 3 dithering matrix) + FID_CLUSTER6x6 = 3, // Ordered clustered dot dithering (order 3 - 6x6 matrix) + FID_CLUSTER8x8 = 4, // Ordered clustered dot dithering (order 4 - 8x8 matrix) + FID_CLUSTER16x16= 5, // Ordered clustered dot dithering (order 8 - 16x16 matrix) + FID_BAYER16x16 = 6 // Bayer ordered dispersed dot dithering (order 4 dithering matrix) +}; + +/** Lossless JPEG transformations +Constants used in FreeImage_JPEGTransform +*/ +FI_ENUM(FREE_IMAGE_JPEG_OPERATION) { + FIJPEG_OP_NONE = 0, // no transformation + FIJPEG_OP_FLIP_H = 1, // horizontal flip + FIJPEG_OP_FLIP_V = 2, // vertical flip + FIJPEG_OP_TRANSPOSE = 3, // transpose across UL-to-LR axis + FIJPEG_OP_TRANSVERSE = 4, // transpose across UR-to-LL axis + FIJPEG_OP_ROTATE_90 = 5, // 90-degree clockwise rotation + FIJPEG_OP_ROTATE_180 = 6, // 180-degree rotation + FIJPEG_OP_ROTATE_270 = 7 // 270-degree clockwise (or 90 ccw) +}; + +/** Tone mapping operators. +Constants used in FreeImage_ToneMapping. +*/ +FI_ENUM(FREE_IMAGE_TMO) { + FITMO_DRAGO03 = 0, // Adaptive logarithmic mapping (F. Drago, 2003) + FITMO_REINHARD05 = 1, // Dynamic range reduction inspired by photoreceptor physiology (E. Reinhard, 2005) + FITMO_FATTAL02 = 2 // Gradient domain high dynamic range compression (R. Fattal, 2002) +}; + +/** Upsampling / downsampling filters. +Constants used in FreeImage_Rescale. +*/ +FI_ENUM(FREE_IMAGE_FILTER) { + FILTER_BOX = 0, // Box, pulse, Fourier window, 1st order (constant) b-spline + FILTER_BICUBIC = 1, // Mitchell & Netravali's two-param cubic filter + FILTER_BILINEAR = 2, // Bilinear filter + FILTER_BSPLINE = 3, // 4th order (cubic) b-spline + FILTER_CATMULLROM = 4, // Catmull-Rom spline, Overhauser spline + FILTER_LANCZOS3 = 5 // Lanczos3 filter +}; + +/** Color channels. +Constants used in color manipulation routines. +*/ +FI_ENUM(FREE_IMAGE_COLOR_CHANNEL) { + FICC_RGB = 0, // Use red, green and blue channels + FICC_RED = 1, // Use red channel + FICC_GREEN = 2, // Use green channel + FICC_BLUE = 3, // Use blue channel + FICC_ALPHA = 4, // Use alpha channel + FICC_BLACK = 5, // Use black channel + FICC_REAL = 6, // Complex images: use real part + FICC_IMAG = 7, // Complex images: use imaginary part + FICC_MAG = 8, // Complex images: use magnitude + FICC_PHASE = 9 // Complex images: use phase +}; + +// Metadata support --------------------------------------------------------- + +/** + Tag data type information (based on TIFF specifications) + + Note: RATIONALs are the ratio of two 32-bit integer values. +*/ +FI_ENUM(FREE_IMAGE_MDTYPE) { + FIDT_NOTYPE = 0, // placeholder + FIDT_BYTE = 1, // 8-bit unsigned integer + FIDT_ASCII = 2, // 8-bit bytes w/ last byte null + FIDT_SHORT = 3, // 16-bit unsigned integer + FIDT_LONG = 4, // 32-bit unsigned integer + FIDT_RATIONAL = 5, // 64-bit unsigned fraction + FIDT_SBYTE = 6, // 8-bit signed integer + FIDT_UNDEFINED = 7, // 8-bit untyped data + FIDT_SSHORT = 8, // 16-bit signed integer + FIDT_SLONG = 9, // 32-bit signed integer + FIDT_SRATIONAL = 10, // 64-bit signed fraction + FIDT_FLOAT = 11, // 32-bit IEEE floating point + FIDT_DOUBLE = 12, // 64-bit IEEE floating point + FIDT_IFD = 13, // 32-bit unsigned integer (offset) + FIDT_PALETTE = 14 // 32-bit RGBQUAD +}; + +/** + Metadata models supported by FreeImage +*/ +FI_ENUM(FREE_IMAGE_MDMODEL) { + FIMD_NODATA = -1, + FIMD_COMMENTS = 0, // single comment or keywords + FIMD_EXIF_MAIN = 1, // Exif-TIFF metadata + FIMD_EXIF_EXIF = 2, // Exif-specific metadata + FIMD_EXIF_GPS = 3, // Exif GPS metadata + FIMD_EXIF_MAKERNOTE = 4, // Exif maker note metadata + FIMD_EXIF_INTEROP = 5, // Exif interoperability metadata + FIMD_IPTC = 6, // IPTC/NAA metadata + FIMD_XMP = 7, // Abobe XMP metadata + FIMD_GEOTIFF = 8, // GeoTIFF metadata + FIMD_ANIMATION = 9, // Animation metadata + FIMD_CUSTOM = 10 // Used to attach other metadata types to a dib +}; + +/** + Handle to a metadata model +*/ +FI_STRUCT (FIMETADATA) { void *data; }; + +/** + Handle to a FreeImage tag +*/ +FI_STRUCT (FITAG) { void *data; }; + +// File IO routines --------------------------------------------------------- + +#ifndef FREEIMAGE_IO +#define FREEIMAGE_IO + +typedef void* fi_handle; +typedef unsigned (DLL_CALLCONV *FI_ReadProc) (void *buffer, unsigned size, unsigned count, fi_handle handle); +typedef unsigned (DLL_CALLCONV *FI_WriteProc) (void *buffer, unsigned size, unsigned count, fi_handle handle); +typedef int (DLL_CALLCONV *FI_SeekProc) (fi_handle handle, long offset, int origin); +typedef long (DLL_CALLCONV *FI_TellProc) (fi_handle handle); + +#if (defined(_WIN32) || defined(__WIN32__)) +#pragma pack(push, 1) +#else +#pragma pack(1) +#endif // WIN32 + +FI_STRUCT(FreeImageIO) { + FI_ReadProc read_proc; // pointer to the function used to read data + FI_WriteProc write_proc; // pointer to the function used to write data + FI_SeekProc seek_proc; // pointer to the function used to seek + FI_TellProc tell_proc; // pointer to the function used to aquire the current position +}; + +#if (defined(_WIN32) || defined(__WIN32__)) +#pragma pack(pop) +#else +#pragma pack() +#endif // WIN32 + +/** +Handle to a memory I/O stream +*/ +FI_STRUCT (FIMEMORY) { void *data; }; + +#endif // FREEIMAGE_IO + +// Plugin routines ---------------------------------------------------------- + +#ifndef PLUGINS +#define PLUGINS + +typedef const char *(DLL_CALLCONV *FI_FormatProc) (); +typedef const char *(DLL_CALLCONV *FI_DescriptionProc) (); +typedef const char *(DLL_CALLCONV *FI_ExtensionListProc) (); +typedef const char *(DLL_CALLCONV *FI_RegExprProc) (); +typedef void *(DLL_CALLCONV *FI_OpenProc)(FreeImageIO *io, fi_handle handle, BOOL read); +typedef void (DLL_CALLCONV *FI_CloseProc)(FreeImageIO *io, fi_handle handle, void *data); +typedef int (DLL_CALLCONV *FI_PageCountProc)(FreeImageIO *io, fi_handle handle, void *data); +typedef int (DLL_CALLCONV *FI_PageCapabilityProc)(FreeImageIO *io, fi_handle handle, void *data); +typedef FIBITMAP *(DLL_CALLCONV *FI_LoadProc)(FreeImageIO *io, fi_handle handle, int page, int flags, void *data); +typedef BOOL (DLL_CALLCONV *FI_SaveProc)(FreeImageIO *io, FIBITMAP *dib, fi_handle handle, int page, int flags, void *data); +typedef BOOL (DLL_CALLCONV *FI_ValidateProc)(FreeImageIO *io, fi_handle handle); +typedef const char *(DLL_CALLCONV *FI_MimeProc) (); +typedef BOOL (DLL_CALLCONV *FI_SupportsExportBPPProc)(int bpp); +typedef BOOL (DLL_CALLCONV *FI_SupportsExportTypeProc)(FREE_IMAGE_TYPE type); +typedef BOOL (DLL_CALLCONV *FI_SupportsICCProfilesProc)(); + +FI_STRUCT (Plugin) { + FI_FormatProc format_proc; + FI_DescriptionProc description_proc; + FI_ExtensionListProc extension_proc; + FI_RegExprProc regexpr_proc; + FI_OpenProc open_proc; + FI_CloseProc close_proc; + FI_PageCountProc pagecount_proc; + FI_PageCapabilityProc pagecapability_proc; + FI_LoadProc load_proc; + FI_SaveProc save_proc; + FI_ValidateProc validate_proc; + FI_MimeProc mime_proc; + FI_SupportsExportBPPProc supports_export_bpp_proc; + FI_SupportsExportTypeProc supports_export_type_proc; + FI_SupportsICCProfilesProc supports_icc_profiles_proc; +}; + +typedef void (DLL_CALLCONV *FI_InitProc)(Plugin *plugin, int format_id); + +#endif // PLUGINS + + +// Load / Save flag constants ----------------------------------------------- + +#define BMP_DEFAULT 0 +#define BMP_SAVE_RLE 1 +#define CUT_DEFAULT 0 +#define DDS_DEFAULT 0 +#define EXR_DEFAULT 0 // save data as half with piz-based wavelet compression +#define EXR_FLOAT 0x0001 // save data as float instead of as half (not recommended) +#define EXR_NONE 0x0002 // save with no compression +#define EXR_ZIP 0x0004 // save with zlib compression, in blocks of 16 scan lines +#define EXR_PIZ 0x0008 // save with piz-based wavelet compression +#define EXR_PXR24 0x0010 // save with lossy 24-bit float compression +#define EXR_B44 0x0020 // save with lossy 44% float compression - goes to 22% when combined with EXR_LC +#define EXR_LC 0x0040 // save images with one luminance and two chroma channels, rather than as RGB (lossy compression) +#define FAXG3_DEFAULT 0 +#define GIF_DEFAULT 0 +#define GIF_LOAD256 1 // Load the image as a 256 color image with ununsed palette entries, if it's 16 or 2 color +#define GIF_PLAYBACK 2 // 'Play' the GIF to generate each frame (as 32bpp) instead of returning raw frame data when loading +#define HDR_DEFAULT 0 +#define ICO_DEFAULT 0 +#define ICO_MAKEALPHA 1 // convert to 32bpp and create an alpha channel from the AND-mask when loading +#define IFF_DEFAULT 0 +#define J2K_DEFAULT 0 // save with a 16:1 rate +#define JP2_DEFAULT 0 // save with a 16:1 rate +#define JPEG_DEFAULT 0 // loading (see JPEG_FAST); saving (see JPEG_QUALITYGOOD|JPEG_SUBSAMPLING_420) +#define JPEG_FAST 0x0001 // load the file as fast as possible, sacrificing some quality +#define JPEG_ACCURATE 0x0002 // load the file with the best quality, sacrificing some speed +#define JPEG_CMYK 0x0004 // load separated CMYK "as is" (use | to combine with other load flags) +#define JPEG_EXIFROTATE 0x0008 // load and rotate according to Exif 'Orientation' tag if available +#define JPEG_QUALITYSUPERB 0x80 // save with superb quality (100:1) +#define JPEG_QUALITYGOOD 0x0100 // save with good quality (75:1) +#define JPEG_QUALITYNORMAL 0x0200 // save with normal quality (50:1) +#define JPEG_QUALITYAVERAGE 0x0400 // save with average quality (25:1) +#define JPEG_QUALITYBAD 0x0800 // save with bad quality (10:1) +#define JPEG_PROGRESSIVE 0x2000 // save as a progressive-JPEG (use | to combine with other save flags) +#define JPEG_SUBSAMPLING_411 0x1000 // save with high 4x1 chroma subsampling (4:1:1) +#define JPEG_SUBSAMPLING_420 0x4000 // save with medium 2x2 medium chroma subsampling (4:2:0) - default value +#define JPEG_SUBSAMPLING_422 0x8000 // save with low 2x1 chroma subsampling (4:2:2) +#define JPEG_SUBSAMPLING_444 0x10000 // save with no chroma subsampling (4:4:4) +#define KOALA_DEFAULT 0 +#define LBM_DEFAULT 0 +#define MNG_DEFAULT 0 +#define PCD_DEFAULT 0 +#define PCD_BASE 1 // load the bitmap sized 768 x 512 +#define PCD_BASEDIV4 2 // load the bitmap sized 384 x 256 +#define PCD_BASEDIV16 3 // load the bitmap sized 192 x 128 +#define PCX_DEFAULT 0 +#define PFM_DEFAULT 0 +#define PNG_DEFAULT 0 +#define PNG_IGNOREGAMMA 1 // loading: avoid gamma correction +#define PNG_Z_BEST_SPEED 0x0001 // save using ZLib level 1 compression flag (default value is 6) +#define PNG_Z_DEFAULT_COMPRESSION 0x0006 // save using ZLib level 6 compression flag (default recommended value) +#define PNG_Z_BEST_COMPRESSION 0x0009 // save using ZLib level 9 compression flag (default value is 6) +#define PNG_Z_NO_COMPRESSION 0x0100 // save without ZLib compression +#define PNG_INTERLACED 0x0200 // save using Adam7 interlacing (use | to combine with other save flags) +#define PNM_DEFAULT 0 +#define PNM_SAVE_RAW 0 // If set the writer saves in RAW format (i.e. P4, P5 or P6) +#define PNM_SAVE_ASCII 1 // If set the writer saves in ASCII format (i.e. P1, P2 or P3) +#define PSD_DEFAULT 0 +#define RAS_DEFAULT 0 +#define SGI_DEFAULT 0 +#define TARGA_DEFAULT 0 +#define TARGA_LOAD_RGB888 1 // If set the loader converts RGB555 and ARGB8888 -> RGB888. +#define TIFF_DEFAULT 0 +#define TIFF_CMYK 0x0001 // reads/stores tags for separated CMYK (use | to combine with compression flags) +#define TIFF_PACKBITS 0x0100 // save using PACKBITS compression +#define TIFF_DEFLATE 0x0200 // save using DEFLATE compression (a.k.a. ZLIB compression) +#define TIFF_ADOBE_DEFLATE 0x0400 // save using ADOBE DEFLATE compression +#define TIFF_NONE 0x0800 // save without any compression +#define TIFF_CCITTFAX3 0x1000 // save using CCITT Group 3 fax encoding +#define TIFF_CCITTFAX4 0x2000 // save using CCITT Group 4 fax encoding +#define TIFF_LZW 0x4000 // save using LZW compression +#define TIFF_JPEG 0x8000 // save using JPEG compression +#define WBMP_DEFAULT 0 +#define XBM_DEFAULT 0 +#define XPM_DEFAULT 0 + + +#ifdef __cplusplus +extern "C" { +#endif + +// Init / Error routines ---------------------------------------------------- + +DLL_API void DLL_CALLCONV FreeImage_Initialise(BOOL load_local_plugins_only FI_DEFAULT(FALSE)); +DLL_API void DLL_CALLCONV FreeImage_DeInitialise(void); + +// Version routines --------------------------------------------------------- + +DLL_API const char *DLL_CALLCONV FreeImage_GetVersion(void); +DLL_API const char *DLL_CALLCONV FreeImage_GetCopyrightMessage(void); + +// Message output functions ------------------------------------------------- + +typedef void (*FreeImage_OutputMessageFunction)(FREE_IMAGE_FORMAT fif, const char *msg); +typedef void (DLL_CALLCONV *FreeImage_OutputMessageFunctionStdCall)(FREE_IMAGE_FORMAT fif, const char *msg); + +DLL_API void DLL_CALLCONV FreeImage_SetOutputMessageStdCall(FreeImage_OutputMessageFunctionStdCall omf); +DLL_API void DLL_CALLCONV FreeImage_SetOutputMessage(FreeImage_OutputMessageFunction omf); +DLL_API void DLL_CALLCONV FreeImage_OutputMessageProc(int fif, const char *fmt, ...); + +// Allocate / Clone / Unload routines --------------------------------------- + +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Allocate(int width, int height, int bpp, unsigned red_mask FI_DEFAULT(0), unsigned green_mask FI_DEFAULT(0), unsigned blue_mask FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_AllocateT(FREE_IMAGE_TYPE type, int width, int height, int bpp FI_DEFAULT(8), unsigned red_mask FI_DEFAULT(0), unsigned green_mask FI_DEFAULT(0), unsigned blue_mask FI_DEFAULT(0)); +DLL_API FIBITMAP * DLL_CALLCONV FreeImage_Clone(FIBITMAP *dib); +DLL_API void DLL_CALLCONV FreeImage_Unload(FIBITMAP *dib); + +// Load / Save routines ----------------------------------------------------- + +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Load(FREE_IMAGE_FORMAT fif, const char *filename, int flags FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_LoadU(FREE_IMAGE_FORMAT fif, const wchar_t *filename, int flags FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_LoadFromHandle(FREE_IMAGE_FORMAT fif, FreeImageIO *io, fi_handle handle, int flags FI_DEFAULT(0)); +DLL_API BOOL DLL_CALLCONV FreeImage_Save(FREE_IMAGE_FORMAT fif, FIBITMAP *dib, const char *filename, int flags FI_DEFAULT(0)); +DLL_API BOOL DLL_CALLCONV FreeImage_SaveU(FREE_IMAGE_FORMAT fif, FIBITMAP *dib, const wchar_t *filename, int flags FI_DEFAULT(0)); +DLL_API BOOL DLL_CALLCONV FreeImage_SaveToHandle(FREE_IMAGE_FORMAT fif, FIBITMAP *dib, FreeImageIO *io, fi_handle handle, int flags FI_DEFAULT(0)); + +// Memory I/O stream routines ----------------------------------------------- + +DLL_API FIMEMORY *DLL_CALLCONV FreeImage_OpenMemory(BYTE *data FI_DEFAULT(0), DWORD size_in_bytes FI_DEFAULT(0)); +DLL_API void DLL_CALLCONV FreeImage_CloseMemory(FIMEMORY *stream); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_LoadFromMemory(FREE_IMAGE_FORMAT fif, FIMEMORY *stream, int flags FI_DEFAULT(0)); +DLL_API BOOL DLL_CALLCONV FreeImage_SaveToMemory(FREE_IMAGE_FORMAT fif, FIBITMAP *dib, FIMEMORY *stream, int flags FI_DEFAULT(0)); +DLL_API long DLL_CALLCONV FreeImage_TellMemory(FIMEMORY *stream); +DLL_API BOOL DLL_CALLCONV FreeImage_SeekMemory(FIMEMORY *stream, long offset, int origin); +DLL_API BOOL DLL_CALLCONV FreeImage_AcquireMemory(FIMEMORY *stream, BYTE **data, DWORD *size_in_bytes); +DLL_API unsigned DLL_CALLCONV FreeImage_ReadMemory(void *buffer, unsigned size, unsigned count, FIMEMORY *stream); +DLL_API unsigned DLL_CALLCONV FreeImage_WriteMemory(const void *buffer, unsigned size, unsigned count, FIMEMORY *stream); +DLL_API FIMULTIBITMAP *DLL_CALLCONV FreeImage_LoadMultiBitmapFromMemory(FREE_IMAGE_FORMAT fif, FIMEMORY *stream, int flags FI_DEFAULT(0)); + +// Plugin Interface --------------------------------------------------------- + +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_RegisterLocalPlugin(FI_InitProc proc_address, const char *format FI_DEFAULT(0), const char *description FI_DEFAULT(0), const char *extension FI_DEFAULT(0), const char *regexpr FI_DEFAULT(0)); +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_RegisterExternalPlugin(const char *path, const char *format FI_DEFAULT(0), const char *description FI_DEFAULT(0), const char *extension FI_DEFAULT(0), const char *regexpr FI_DEFAULT(0)); +DLL_API int DLL_CALLCONV FreeImage_GetFIFCount(void); +DLL_API int DLL_CALLCONV FreeImage_SetPluginEnabled(FREE_IMAGE_FORMAT fif, BOOL enable); +DLL_API int DLL_CALLCONV FreeImage_IsPluginEnabled(FREE_IMAGE_FORMAT fif); +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFIFFromFormat(const char *format); +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFIFFromMime(const char *mime); +DLL_API const char *DLL_CALLCONV FreeImage_GetFormatFromFIF(FREE_IMAGE_FORMAT fif); +DLL_API const char *DLL_CALLCONV FreeImage_GetFIFExtensionList(FREE_IMAGE_FORMAT fif); +DLL_API const char *DLL_CALLCONV FreeImage_GetFIFDescription(FREE_IMAGE_FORMAT fif); +DLL_API const char *DLL_CALLCONV FreeImage_GetFIFRegExpr(FREE_IMAGE_FORMAT fif); +DLL_API const char *DLL_CALLCONV FreeImage_GetFIFMimeType(FREE_IMAGE_FORMAT fif); +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFIFFromFilename(const char *filename); +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFIFFromFilenameU(const wchar_t *filename); +DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsReading(FREE_IMAGE_FORMAT fif); +DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsWriting(FREE_IMAGE_FORMAT fif); +DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsExportBPP(FREE_IMAGE_FORMAT fif, int bpp); +DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsExportType(FREE_IMAGE_FORMAT fif, FREE_IMAGE_TYPE type); +DLL_API BOOL DLL_CALLCONV FreeImage_FIFSupportsICCProfiles(FREE_IMAGE_FORMAT fif); + +// Multipaging interface ---------------------------------------------------- + +DLL_API FIMULTIBITMAP * DLL_CALLCONV FreeImage_OpenMultiBitmap(FREE_IMAGE_FORMAT fif, const char *filename, BOOL create_new, BOOL read_only, BOOL keep_cache_in_memory FI_DEFAULT(FALSE), int flags FI_DEFAULT(0)); +DLL_API BOOL DLL_CALLCONV FreeImage_CloseMultiBitmap(FIMULTIBITMAP *bitmap, int flags FI_DEFAULT(0)); +DLL_API int DLL_CALLCONV FreeImage_GetPageCount(FIMULTIBITMAP *bitmap); +DLL_API void DLL_CALLCONV FreeImage_AppendPage(FIMULTIBITMAP *bitmap, FIBITMAP *data); +DLL_API void DLL_CALLCONV FreeImage_InsertPage(FIMULTIBITMAP *bitmap, int page, FIBITMAP *data); +DLL_API void DLL_CALLCONV FreeImage_DeletePage(FIMULTIBITMAP *bitmap, int page); +DLL_API FIBITMAP * DLL_CALLCONV FreeImage_LockPage(FIMULTIBITMAP *bitmap, int page); +DLL_API void DLL_CALLCONV FreeImage_UnlockPage(FIMULTIBITMAP *bitmap, FIBITMAP *data, BOOL changed); +DLL_API BOOL DLL_CALLCONV FreeImage_MovePage(FIMULTIBITMAP *bitmap, int target, int source); +DLL_API BOOL DLL_CALLCONV FreeImage_GetLockedPageNumbers(FIMULTIBITMAP *bitmap, int *pages, int *count); + +// Filetype request routines ------------------------------------------------ + +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFileType(const char *filename, int size FI_DEFAULT(0)); +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFileTypeU(const wchar_t *filename, int size FI_DEFAULT(0)); +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFileTypeFromHandle(FreeImageIO *io, fi_handle handle, int size FI_DEFAULT(0)); +DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_GetFileTypeFromMemory(FIMEMORY *stream, int size FI_DEFAULT(0)); + +// Image type request routine ----------------------------------------------- + +DLL_API FREE_IMAGE_TYPE DLL_CALLCONV FreeImage_GetImageType(FIBITMAP *dib); + +// FreeImage helper routines ------------------------------------------------ + +DLL_API BOOL DLL_CALLCONV FreeImage_IsLittleEndian(void); +DLL_API BOOL DLL_CALLCONV FreeImage_LookupX11Color(const char *szColor, BYTE *nRed, BYTE *nGreen, BYTE *nBlue); +DLL_API BOOL DLL_CALLCONV FreeImage_LookupSVGColor(const char *szColor, BYTE *nRed, BYTE *nGreen, BYTE *nBlue); + + +// Pixel access routines ---------------------------------------------------- + +DLL_API BYTE *DLL_CALLCONV FreeImage_GetBits(FIBITMAP *dib); +DLL_API BYTE *DLL_CALLCONV FreeImage_GetScanLine(FIBITMAP *dib, int scanline); + +DLL_API BOOL DLL_CALLCONV FreeImage_GetPixelIndex(FIBITMAP *dib, unsigned x, unsigned y, BYTE *value); +DLL_API BOOL DLL_CALLCONV FreeImage_GetPixelColor(FIBITMAP *dib, unsigned x, unsigned y, RGBQUAD *value); +DLL_API BOOL DLL_CALLCONV FreeImage_SetPixelIndex(FIBITMAP *dib, unsigned x, unsigned y, BYTE *value); +DLL_API BOOL DLL_CALLCONV FreeImage_SetPixelColor(FIBITMAP *dib, unsigned x, unsigned y, RGBQUAD *value); + +// DIB info routines -------------------------------------------------------- + +DLL_API unsigned DLL_CALLCONV FreeImage_GetColorsUsed(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetBPP(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetWidth(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetHeight(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetLine(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetPitch(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetDIBSize(FIBITMAP *dib); +DLL_API RGBQUAD *DLL_CALLCONV FreeImage_GetPalette(FIBITMAP *dib); + +DLL_API unsigned DLL_CALLCONV FreeImage_GetDotsPerMeterX(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetDotsPerMeterY(FIBITMAP *dib); +DLL_API void DLL_CALLCONV FreeImage_SetDotsPerMeterX(FIBITMAP *dib, unsigned res); +DLL_API void DLL_CALLCONV FreeImage_SetDotsPerMeterY(FIBITMAP *dib, unsigned res); + +DLL_API BITMAPINFOHEADER *DLL_CALLCONV FreeImage_GetInfoHeader(FIBITMAP *dib); +DLL_API BITMAPINFO *DLL_CALLCONV FreeImage_GetInfo(FIBITMAP *dib); +DLL_API FREE_IMAGE_COLOR_TYPE DLL_CALLCONV FreeImage_GetColorType(FIBITMAP *dib); + +DLL_API unsigned DLL_CALLCONV FreeImage_GetRedMask(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetGreenMask(FIBITMAP *dib); +DLL_API unsigned DLL_CALLCONV FreeImage_GetBlueMask(FIBITMAP *dib); + +DLL_API unsigned DLL_CALLCONV FreeImage_GetTransparencyCount(FIBITMAP *dib); +DLL_API BYTE * DLL_CALLCONV FreeImage_GetTransparencyTable(FIBITMAP *dib); +DLL_API void DLL_CALLCONV FreeImage_SetTransparent(FIBITMAP *dib, BOOL enabled); +DLL_API void DLL_CALLCONV FreeImage_SetTransparencyTable(FIBITMAP *dib, BYTE *table, int count); +DLL_API BOOL DLL_CALLCONV FreeImage_IsTransparent(FIBITMAP *dib); +DLL_API void DLL_CALLCONV FreeImage_SetTransparentIndex(FIBITMAP *dib, int index); +DLL_API int DLL_CALLCONV FreeImage_GetTransparentIndex(FIBITMAP *dib); + +DLL_API BOOL DLL_CALLCONV FreeImage_HasBackgroundColor(FIBITMAP *dib); +DLL_API BOOL DLL_CALLCONV FreeImage_GetBackgroundColor(FIBITMAP *dib, RGBQUAD *bkcolor); +DLL_API BOOL DLL_CALLCONV FreeImage_SetBackgroundColor(FIBITMAP *dib, RGBQUAD *bkcolor); + + +// ICC profile routines ----------------------------------------------------- + +DLL_API FIICCPROFILE *DLL_CALLCONV FreeImage_GetICCProfile(FIBITMAP *dib); +DLL_API FIICCPROFILE *DLL_CALLCONV FreeImage_CreateICCProfile(FIBITMAP *dib, void *data, long size); +DLL_API void DLL_CALLCONV FreeImage_DestroyICCProfile(FIBITMAP *dib); + +// Line conversion routines ------------------------------------------------- + +DLL_API void DLL_CALLCONV FreeImage_ConvertLine1To4(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine8To4(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16To4_555(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16To4_565(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine24To4(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine32To4(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine1To8(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine4To8(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16To8_555(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16To8_565(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine24To8(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine32To8(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine1To16_555(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine4To16_555(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine8To16_555(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16_565_To16_555(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine24To16_555(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine32To16_555(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine1To16_565(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine4To16_565(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine8To16_565(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16_555_To16_565(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine24To16_565(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine32To16_565(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine1To24(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine4To24(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine8To24(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16To24_555(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16To24_565(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine32To24(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine1To32(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine4To32(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine8To32(BYTE *target, BYTE *source, int width_in_pixels, RGBQUAD *palette); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16To32_555(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine16To32_565(BYTE *target, BYTE *source, int width_in_pixels); +DLL_API void DLL_CALLCONV FreeImage_ConvertLine24To32(BYTE *target, BYTE *source, int width_in_pixels); + +// Smart conversion routines ------------------------------------------------ + +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo4Bits(FIBITMAP *dib); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo8Bits(FIBITMAP *dib); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToGreyscale(FIBITMAP *dib); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo16Bits555(FIBITMAP *dib); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo16Bits565(FIBITMAP *dib); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo24Bits(FIBITMAP *dib); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo32Bits(FIBITMAP *dib); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ColorQuantize(FIBITMAP *dib, FREE_IMAGE_QUANTIZE quantize); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ColorQuantizeEx(FIBITMAP *dib, FREE_IMAGE_QUANTIZE quantize FI_DEFAULT(FIQ_WUQUANT), int PaletteSize FI_DEFAULT(256), int ReserveSize FI_DEFAULT(0), RGBQUAD *ReservePalette FI_DEFAULT(NULL)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Threshold(FIBITMAP *dib, BYTE T); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Dither(FIBITMAP *dib, FREE_IMAGE_DITHER algorithm); + +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertFromRawBits(BYTE *bits, int width, int height, int pitch, unsigned bpp, unsigned red_mask, unsigned green_mask, unsigned blue_mask, BOOL topdown FI_DEFAULT(FALSE)); +DLL_API void DLL_CALLCONV FreeImage_ConvertToRawBits(BYTE *bits, FIBITMAP *dib, int pitch, unsigned bpp, unsigned red_mask, unsigned green_mask, unsigned blue_mask, BOOL topdown FI_DEFAULT(FALSE)); + +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToRGBF(FIBITMAP *dib); + +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToStandardType(FIBITMAP *src, BOOL scale_linear FI_DEFAULT(TRUE)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToType(FIBITMAP *src, FREE_IMAGE_TYPE dst_type, BOOL scale_linear FI_DEFAULT(TRUE)); + +// tone mapping operators +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ToneMapping(FIBITMAP *dib, FREE_IMAGE_TMO tmo, double first_param FI_DEFAULT(0), double second_param FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_TmoDrago03(FIBITMAP *src, double gamma FI_DEFAULT(2.2), double exposure FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_TmoReinhard05(FIBITMAP *src, double intensity FI_DEFAULT(0), double contrast FI_DEFAULT(0)); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_TmoFattal02(FIBITMAP *src, double color_saturation FI_DEFAULT(0.5), double attenuation FI_DEFAULT(0.85)); + +// ZLib interface ----------------------------------------------------------- + +DLL_API DWORD DLL_CALLCONV FreeImage_ZLibCompress(BYTE *target, DWORD target_size, BYTE *source, DWORD source_size); +DLL_API DWORD DLL_CALLCONV FreeImage_ZLibUncompress(BYTE *target, DWORD target_size, BYTE *source, DWORD source_size); +DLL_API DWORD DLL_CALLCONV FreeImage_ZLibGZip(BYTE *target, DWORD target_size, BYTE *source, DWORD source_size); +DLL_API DWORD DLL_CALLCONV FreeImage_ZLibGUnzip(BYTE *target, DWORD target_size, BYTE *source, DWORD source_size); +DLL_API DWORD DLL_CALLCONV FreeImage_ZLibCRC32(DWORD crc, BYTE *source, DWORD source_size); + +// -------------------------------------------------------------------------- +// Metadata routines -------------------------------------------------------- +// -------------------------------------------------------------------------- + +// tag creation / destruction +DLL_API FITAG *DLL_CALLCONV FreeImage_CreateTag(); +DLL_API void DLL_CALLCONV FreeImage_DeleteTag(FITAG *tag); +DLL_API FITAG *DLL_CALLCONV FreeImage_CloneTag(FITAG *tag); + +// tag getters and setters +DLL_API const char *DLL_CALLCONV FreeImage_GetTagKey(FITAG *tag); +DLL_API const char *DLL_CALLCONV FreeImage_GetTagDescription(FITAG *tag); +DLL_API WORD DLL_CALLCONV FreeImage_GetTagID(FITAG *tag); +DLL_API FREE_IMAGE_MDTYPE DLL_CALLCONV FreeImage_GetTagType(FITAG *tag); +DLL_API DWORD DLL_CALLCONV FreeImage_GetTagCount(FITAG *tag); +DLL_API DWORD DLL_CALLCONV FreeImage_GetTagLength(FITAG *tag); +DLL_API const void *DLL_CALLCONV FreeImage_GetTagValue(FITAG *tag); + +DLL_API BOOL DLL_CALLCONV FreeImage_SetTagKey(FITAG *tag, const char *key); +DLL_API BOOL DLL_CALLCONV FreeImage_SetTagDescription(FITAG *tag, const char *description); +DLL_API BOOL DLL_CALLCONV FreeImage_SetTagID(FITAG *tag, WORD id); +DLL_API BOOL DLL_CALLCONV FreeImage_SetTagType(FITAG *tag, FREE_IMAGE_MDTYPE type); +DLL_API BOOL DLL_CALLCONV FreeImage_SetTagCount(FITAG *tag, DWORD count); +DLL_API BOOL DLL_CALLCONV FreeImage_SetTagLength(FITAG *tag, DWORD length); +DLL_API BOOL DLL_CALLCONV FreeImage_SetTagValue(FITAG *tag, const void *value); + +// iterator +DLL_API FIMETADATA *DLL_CALLCONV FreeImage_FindFirstMetadata(FREE_IMAGE_MDMODEL model, FIBITMAP *dib, FITAG **tag); +DLL_API BOOL DLL_CALLCONV FreeImage_FindNextMetadata(FIMETADATA *mdhandle, FITAG **tag); +DLL_API void DLL_CALLCONV FreeImage_FindCloseMetadata(FIMETADATA *mdhandle); + +// metadata setter and getter +DLL_API BOOL DLL_CALLCONV FreeImage_SetMetadata(FREE_IMAGE_MDMODEL model, FIBITMAP *dib, const char *key, FITAG *tag); +DLL_API BOOL DLL_CALLCONV FreeImage_GetMetadata(FREE_IMAGE_MDMODEL model, FIBITMAP *dib, const char *key, FITAG **tag); + +// helpers +DLL_API unsigned DLL_CALLCONV FreeImage_GetMetadataCount(FREE_IMAGE_MDMODEL model, FIBITMAP *dib); +DLL_API BOOL DLL_CALLCONV FreeImage_CloneMetadata(FIBITMAP *dst, FIBITMAP *src); + +// tag to C string conversion +DLL_API const char* DLL_CALLCONV FreeImage_TagToString(FREE_IMAGE_MDMODEL model, FITAG *tag, char *Make FI_DEFAULT(NULL)); + +// -------------------------------------------------------------------------- +// Image manipulation toolkit ----------------------------------------------- +// -------------------------------------------------------------------------- + +// rotation and flipping +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_RotateClassic(FIBITMAP *dib, double angle); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_RotateEx(FIBITMAP *dib, double angle, double x_shift, double y_shift, double x_origin, double y_origin, BOOL use_mask); +DLL_API BOOL DLL_CALLCONV FreeImage_FlipHorizontal(FIBITMAP *dib); +DLL_API BOOL DLL_CALLCONV FreeImage_FlipVertical(FIBITMAP *dib); +DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(FALSE)); + +// upsampling / downsampling +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Rescale(FIBITMAP *dib, int dst_width, int dst_height, FREE_IMAGE_FILTER filter); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_MakeThumbnail(FIBITMAP *dib, int max_pixel_size, BOOL convert FI_DEFAULT(TRUE)); + +// color manipulation routines (point operations) +DLL_API BOOL DLL_CALLCONV FreeImage_AdjustCurve(FIBITMAP *dib, BYTE *LUT, FREE_IMAGE_COLOR_CHANNEL channel); +DLL_API BOOL DLL_CALLCONV FreeImage_AdjustGamma(FIBITMAP *dib, double gamma); +DLL_API BOOL DLL_CALLCONV FreeImage_AdjustBrightness(FIBITMAP *dib, double percentage); +DLL_API BOOL DLL_CALLCONV FreeImage_AdjustContrast(FIBITMAP *dib, double percentage); +DLL_API BOOL DLL_CALLCONV FreeImage_Invert(FIBITMAP *dib); +DLL_API BOOL DLL_CALLCONV FreeImage_GetHistogram(FIBITMAP *dib, DWORD *histo, FREE_IMAGE_COLOR_CHANNEL channel FI_DEFAULT(FICC_BLACK)); +DLL_API int DLL_CALLCONV FreeImage_GetAdjustColorsLookupTable(BYTE *LUT, double brightness, double contrast, double gamma, BOOL invert); +DLL_API BOOL DLL_CALLCONV FreeImage_AdjustColors(FIBITMAP *dib, double brightness, double contrast, double gamma, BOOL invert FI_DEFAULT(FALSE)); +DLL_API unsigned DLL_CALLCONV FreeImage_ApplyColorMapping(FIBITMAP *dib, RGBQUAD *srccolors, RGBQUAD *dstcolors, unsigned count, BOOL ignore_alpha, BOOL swap); +DLL_API unsigned DLL_CALLCONV FreeImage_SwapColors(FIBITMAP *dib, RGBQUAD *color_a, RGBQUAD *color_b, BOOL ignore_alpha); +DLL_API unsigned DLL_CALLCONV FreeImage_ApplyPaletteIndexMapping(FIBITMAP *dib, BYTE *srcindices, BYTE *dstindices, unsigned count, BOOL swap); +DLL_API unsigned DLL_CALLCONV FreeImage_SwapPaletteIndices(FIBITMAP *dib, BYTE *index_a, BYTE *index_b); + +// channel processing routines +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_GetChannel(FIBITMAP *dib, FREE_IMAGE_COLOR_CHANNEL channel); +DLL_API BOOL DLL_CALLCONV FreeImage_SetChannel(FIBITMAP *dib, FIBITMAP *dib8, FREE_IMAGE_COLOR_CHANNEL channel); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_GetComplexChannel(FIBITMAP *src, FREE_IMAGE_COLOR_CHANNEL channel); +DLL_API BOOL DLL_CALLCONV FreeImage_SetComplexChannel(FIBITMAP *dst, FIBITMAP *src, FREE_IMAGE_COLOR_CHANNEL channel); + +// copy / paste / composite routines +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Copy(FIBITMAP *dib, int left, int top, int right, int bottom); +DLL_API BOOL DLL_CALLCONV FreeImage_Paste(FIBITMAP *dst, FIBITMAP *src, int left, int top, int alpha); +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Composite(FIBITMAP *fg, BOOL useFileBkg FI_DEFAULT(FALSE), RGBQUAD *appBkColor FI_DEFAULT(NULL), FIBITMAP *bg FI_DEFAULT(NULL)); +DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom); +DLL_API BOOL DLL_CALLCONV FreeImage_PreMultiplyWithAlpha(FIBITMAP *dib); + +// miscellaneous algorithms +DLL_API FIBITMAP *DLL_CALLCONV FreeImage_MultigridPoissonSolver(FIBITMAP *Laplacian, int ncycle FI_DEFAULT(3)); + +// restore the borland-specific enum size option +#if defined(__BORLANDC__) +#pragma option pop +#endif + +#ifdef __cplusplus +} +#endif + +#endif // FREEIMAGE_H diff --git a/tools/img2bw/freeimage/FreeImage.lib b/tools/img2bw/freeimage/FreeImage.lib new file mode 100644 index 0000000000000000000000000000000000000000..98dff3d8325187067a4729b140135cff0543d8ab GIT binary patch literal 58886 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 kvU%%Qx44lR@?8P<@Y3!=L{J^%m! literal 0 HcmV?d00001 diff --git a/tools/img2bw/img2bw b/tools/img2bw/img2bw new file mode 100644 index 0000000000000000000000000000000000000000..76dc8bacaf2b2167622991b4472f7c3a47718061 GIT binary patch literal 10975 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 literal 0 HcmV?d00001 diff --git a/tools/img2bw/img2bwbin.exe b/tools/img2bw/img2bwbin.exe new file mode 100644 index 0000000000000000000000000000000000000000..825df5723ece5e36eee76905263fce2e0ba8cb5b GIT binary patch literal 31744 zcmeHw3w%`7)$g8UqC-eXsEJ04dW;OE1!CTr%mWh0AXG*sZ;FvPNluuFlbPwv83=vP_d=fpT(B;OD(mNCjCk^)o4@C{jYsy@L`is@B&Eo!&MvFFieVVT|?q7Y1LQ z`|WQ$77y9)mOM5G`RsS~kLBRKwBuKg&Ew?{J+_v^b016Q@50AY`MZq2Yh0~P;xSud zyOptZnhV+E&el)I%Z6BzX0B!qV+KH~RA|L~4P%)|Qy}f>oy1rQW%0z{>;Uk{Sa_0I zMK?#}G>G_n@}(l}&@elt?$WS1X)0(&yhp<(P>;~4VGCvyyniO`b`3iWQO@_|Nn)4O z5(qFB)9XDD_b@iZ@lYn0A<6_U*(9bPQv4AZyD87#=8znWRg#c);9Y^YnHNt+6);?$ zipK6HgZY35-Pp!S6rQMHtS`@{BI;5Bf{hs2rim9%MiqqT5BOUF;kJVf**s*NlPEk< zLG}7Yw-<=rBs*-%F2H*WFP@Al7+X1+NhG)hPS7)a@r8^HcVCKV!DWcP^9e*rIfz1( zJ*7t!A=q-t?xxg1qWC(Y{OA%y&lBw?DtMlv*FKJ@93D1&2W9_)PBWZO*}#>E9wk_a zQ0$a?iWo>#@O7%lkCq!=MFl4*rRWfSg9^4&b`z!UC4S2Z< _qf{gDn|CpyM~EWp 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 literal 0 HcmV?d00001 diff --git a/tools/img2bw/img2bwbin.sln b/tools/img2bw/img2bwbin.sln new file mode 100644 index 0000000..a62027d --- /dev/null +++ b/tools/img2bw/img2bwbin.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "img2bwbin", "img2bwbin.vcproj", "{73CE84C4-5513-46CD-97BF-4A2F49AB2E7D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73CE84C4-5513-46CD-97BF-4A2F49AB2E7D}.Debug|Win32.ActiveCfg = Debug|Win32 + {73CE84C4-5513-46CD-97BF-4A2F49AB2E7D}.Debug|Win32.Build.0 = Debug|Win32 + {73CE84C4-5513-46CD-97BF-4A2F49AB2E7D}.Release|Win32.ActiveCfg = Release|Win32 + {73CE84C4-5513-46CD-97BF-4A2F49AB2E7D}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tools/img2bw/img2bwbin.vcproj b/tools/img2bw/img2bwbin.vcproj new file mode 100644 index 0000000..1ac56ab --- /dev/null +++ b/tools/img2bw/img2bwbin.vcproj @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/img2bw/src/main.c b/tools/img2bw/src/main.c new file mode 100644 index 0000000..4496764 --- /dev/null +++ b/tools/img2bw/src/main.c @@ -0,0 +1,62 @@ +// $ gcc -o img21bppraw img21bppraw.c -lfreeimage + +#include +#include + +FIBITMAP * loadimage(const char * input) +{ + FREE_IMAGE_FORMAT fif; + FIBITMAP * image = 0; + + fif = FreeImage_GetFileType((const char *) input, 0); + if ( fif == FIF_UNKNOWN ) { + return 0; + } + + image = FreeImage_Load(fif, (const char *) input, BMP_DEFAULT); + FreeImage_FlipVertical(image); + + return image; +} + +int main(int argc, char ** argv) +{ + int bpp; + FILE * f; + if ( argc != 3 ) + return -1; + + FIBITMAP * img = loadimage(argv[1]); + if ( img == 0 ) + return -2; + + f = fopen(argv[2], "wb"); + if ( f== 0 ) + return -3; + + bpp = FreeImage_GetBPP(img); + unsigned char * bits = FreeImage_GetBits(img); + int i, w, h; + + w = FreeImage_GetWidth(img); + h = FreeImage_GetHeight(img); + + unsigned char buffer = 0, b = 0; + + for ( i = w * h ; i > 0 ; i--, bits += (bpp / 8)) { + if ( *bits > 0 ) + buffer |= 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 H7vg^a that some compilers don't + support. + Made messages more informational. + Corrected an off-by-one error in the allocation of the output + size. + Removed comp.h. Now it's one file. + + Damian Yerrick, December 2002: + Prevented matches that reference data before start of file. + Began to standardize comments. + + J. Vijn, Feb 2005 + * Removed main() and added lzgb_compress() so that the file acts + more like a plugin. + // declaration: + unsigned char *lzgb_compress(const char *src, int src_len, + int *pdst_len); + * Removed InsertNode for ii=[N-2*F, N-F-1] because they create + spurious nodes that allow strings to start _before_ the actual + data. Using uninitialized data would fit nicely into the Bad + Things category. Also removed the safeguards to counter this, + since they're not necessary anymore. + * Made the code VRAM safe (I hope) + On this issue: remember that VRAM cannot be written to in bytes. + Therefore, LZ77UnCompVram prepares an u16 before writing. The + problem occurs when the matched position is one before the current + position, in which case the destination bytes haven't been copied + in yet. There's that using uninitialized data again. + First a little more about the process. Nodes are built for each + bytes. rson[N+1..N+256] are the trees for each byte and each node in + that tree represents a possible match. There will be as many nodes + in the tree as there are of those bytes in the ring buffer. + Naturally the last node added is the one before the current one: r-1. + The routine will traverse the tree of the byte at [r], looking + for two things: a) the longest match and b) the closest match if there + are matches of equal length. And this is where shit happens. Both of + them can go wrong, but always for a very special case. As said, the + problem occurs when the match is the previous position. This can only + happen under one condition: for _stretches_ of the same bytes. The + solution is to use the latest length UNLESS the current node p is the + last one added (r-1). This will work out for both new partial stretches + (which will only have one pass and as a result the 2nd byte will have + match_length=0) and F-long stretches. It's basically a 1 line fix. + Gawd I hate those. (20050312: ok, so it turned out to be a 2 line fix) + + + Use, distribute, and modify this code freely. + + "I do not accept responsibility for any effects, adverse or otherwise, + that this code may have on you, your computer, your sanity, your dog, + and anything else that you can think of. Use it at your own risk." +*/ + + +#include +#include +#include + +/// === TYPES ========================================================= + +typedef unsigned char u8, BYTE; + +typedef struct RECORD +{ + int width; + int height; + BYTE *data; +} RECORD; + +#define ALIGN4(nn) ( ((nn)+3)&~3 ) + +#define CPRS_LZ77_TAG 0x10 + +// -------------------------------------------------------------------- +// CONSTANTS +// -------------------------------------------------------------------- + + +// Define information for compression +// (dont modify from 4096/18/2 if AGBCOMP format is required) +#define N 4096 // size of ring buffer (12 bit) +#define F 18 // upper limit for match_length +#define THRESHOLD 2 // encode string into position and length + // if matched length is greater than this +#define NIL N // index for root of binary search trees +#define TEXT_BUF_CLEAR 0 // byte to initialize the area before text_buf with +#define NMASK (N-1) // for wrapping + + +// -------------------------------------------------------------------- +// GLOBALS +// -------------------------------------------------------------------- + +/* Compressor global variables. If you actually want to USE this + code in a non-trivial app, put these global variables in a struct, + as the Allegro library did. +*/ +static unsigned long int codesize = 0; // code size counter +// ring buffer of size N with extra F-1 bytes to facilitate string comparison +static BYTE text_buf[N + F - 1]; +static int match_position; // global string match position +static int match_length; // global string match length +static int lson[N+1], rson[N+256+1], dad[N+1]; // left & right children & parents -- These constitute binary search trees. + + +BYTE *InBuf, *OutBuf; +int InSize, OutSize, InOffset; + + +// -------------------------------------------------------------------- +// PROTOTYPES +// -------------------------------------------------------------------- + + + +//! GBA lz77 interface function +int cprs_gba_lz77(RECORD *dst, const RECORD *src); + +/* Binary search tree functions */ +static void InitTree(void); +static void InsertNode(int r); +static void DeleteNode(int p); + +/* Misc Functions */ +static void CompressLZ77(void); +static int InChar(void); + + +// -------------------------------------------------------------------- +// FUNCTIONS +// -------------------------------------------------------------------- + + +// Initializes InBuf, InSize; allocates OutBuf. +// the rest is done in CompressLZ77 +int cprs_gba_lz77(RECORD *dst, const RECORD *src) +{ + // fail on the obvious + if(src==NULL || src->data==NULL || dst==NULL) + return 0; + + InSize= src->width*src->height; + OutSize = InSize + (InSize>>3) + 16; + OutBuf = (BYTE*)malloc(OutSize); + if(OutBuf == NULL) + return 0; + InBuf= (BYTE*)src->data; + + CompressLZ77(); + OutSize= ALIGN4(OutSize); + + free(dst->data); + dst->data= (BYTE*)malloc(OutSize); + memcpy(dst->data, OutBuf, OutSize); + dst->width= 1; + dst->height= OutSize; + + free(OutBuf); + + return OutSize; +} + + +/* InitTree() ************************** + Initialize a binary search tree. + + For i = 0 to N - 1, rson[i] and lson[i] will be the right and + left children of node i. These nodes need not be initialized. + Also, dad[i] is the parent of node i. These are initialized + to NIL (= N), which stands for 'not used.' + For i = 0 to 255, rson[N + i + 1] is the root of the tree + for strings that begin with character i. These are + initialized to NIL. Note there are 256 trees. +*/ +void InitTree(void) +{ + int i; + for(i= N+1; i <= N+256; i++) + rson[i]= NIL; + for(i=0; i < N; i++) + dad[i]= NIL; +} + +/* InsertNode() ************************ + Inserts string of length F, text_buf[r..r+F-1], into one of the + trees (text_buf[r]'th tree) and returns the longest-match position + and length via the global variables match_position and match_length. + If match_length = F, then removes the old node in favor of the new + one, because the old one will be deleted sooner. + Note r plays double role, as tree node and position in buffer. +*/ +void InsertNode(int r) +{ + int i, p, cmp, prev_length; + BYTE *key; + + cmp= 1; key= &text_buf[r]; p= N + 1 + key[0]; + rson[r]= lson[r]= NIL; + prev_length= match_length= 0; + for( ; ; ) + { + if(cmp >= 0) + { + if(rson[p] != NIL) + p= rson[p]; + else + { + rson[p]= r; + dad[r]= p; + return; + } + } + else + { + if(lson[p] != NIL) + p= lson[p]; + else + { + lson[p]= r; + dad[r]= p; + return; + } + + } + for(i=1; i < F; i++) + if((cmp = key[i] - text_buf[p + i]) != 0) + break; + + if(i > match_length) + { + // VRAM safety: + // match_length= i ONLY if the matched position + // isn't the previous one (r-1) + // for normal case, remove the if. + // That's _IT_?!? Yup, that's it. + if(p != ((r-1)&NMASK) ) + { + match_length= i; + match_position= p; + } + if(match_length >= F) + break; + } + } + + // Full length match, remove old node in favor of this one + dad[r]= dad[p]; + lson[r]= lson[p]; + rson[r]= rson[p]; + dad[lson[p]]= r; + dad[rson[p]]= r; + if(rson[dad[p]] == p) + rson[dad[p]]= r; + else + lson[dad[p]]= r; + dad[p]= NIL; +} + + +/* DeleteNode() ************************ + Deletes node p from the tree. +*/ +void DeleteNode(int p) +{ + int q; + + if(dad[p] == NIL) + return; /* not in tree */ + if(rson[p] == NIL) + q = lson[p]; + else if(lson[p] == NIL) + q = rson[p]; + else + { + q = lson[p]; + if(rson[q] != NIL) + { + do { + q = rson[q]; + } while(rson[q] != NIL); + + rson[dad[q]] = lson[q]; + dad[lson[q]] = dad[q]; + lson[q] = lson[p]; + dad[lson[p]] = q; + } + rson[q] = rson[p]; + dad[rson[p]] = q; + } + + dad[q] = dad[p]; + + if(rson[dad[p]] == p) + rson[dad[p]] = q; + else + lson[dad[p]] = q; + + dad[p] = NIL; +} + + +/* CompressLZ77() ********************** + Compress InBuffer to OutBuffer. +*/ + +void CompressLZ77(void) +{ + int i, c, len, r, s, last_match_length, code_buf_ptr; + unsigned char code_buf[17]; + unsigned short mask; + BYTE *FileSize; + unsigned int curmatch; // PONDER: doesn't this do what r does? + unsigned int savematch; + + OutSize=4; // skip the compression type and file size + InOffset=0; + match_position= curmatch= N-F; + + InitTree(); // initialize trees + code_buf[0] = 0; /* code_buf[1..16] saves eight units of code, and + code_buf[0] works as eight flags, "0" representing that the unit + is an unencoded letter (1 byte), "1" a position-and-length pair + (2 bytes). Thus, eight units require at most 16 bytes of code. */ + code_buf_ptr = 1; + s = 0; r = N - F; + + // Clear the buffer + for(i = s; i < r; i++) + text_buf[i] = TEXT_BUF_CLEAR; + // Read F bytes into the last F bytes of the buffer + for(len = 0; len < F && (c = InChar()) != -1; len++) + text_buf[r + len] = c; + if(len == 0) + return; + + /* Insert the F strings, each of which begins with one or more + // 'space' characters. Note the order in which these strings are + // inserted. This way, degenerate trees will be less likely to occur. + */ + // Perhaps. + // However, the strings you create here have no relation to + // the actual data and are therefore completely bogus. Removed! + //for (i = 1; i <= F; i++) + // InsertNode(r - i); + + // Create the first node, sets match_length to 0 + InsertNode(r); + + // GBA LZSS masks are big-endian + mask = 0x80; + do + { + if(match_length > len) + match_length = len; + + // match too short: add one unencoded byte + if(match_length <= THRESHOLD) + { + match_length = 1; + code_buf[code_buf_ptr++] = text_buf[r]; + } + else // Long enough: add position and length pair. + { + code_buf[0] |= mask; // set match flag + + // 0 byte is 4:length and 4:top 4 bits of match_position + savematch= ((curmatch-match_position)&NMASK)-1; + code_buf[code_buf_ptr++] = ((BYTE)((savematch>>8)&0xf)) + | ((match_length - (THRESHOLD + 1))<<4); + + code_buf[code_buf_ptr++] = (BYTE)savematch; + } + curmatch += match_length; + curmatch &= NMASK; + + // if mask is empty, the buffer's full; write it out the code buffer + // at end of source, code_buf_ptr will be <17 + if((mask >>= 1) == 0) + { + for(i=0; i < code_buf_ptr; i++) + OutBuf[OutSize++]= code_buf[i]; + + codesize += code_buf_ptr; + code_buf[0] = 0; + code_buf_ptr = 1; + mask = 0x80; + } + + // Inserts nodes for this match. The last_match_length is + // required because InsertNode changes match_length. + last_match_length = match_length; + for(i=0; i < last_match_length && (c = InChar()) != -1; i++) + { + DeleteNode(s); // Delete string beforelook-ahead + text_buf[s] = c; // place new bytes + // text_buf[N..N+F> is a double for text_buf[0..F> + // for easier string comparison + if(s < F-1) + text_buf[s + N] = c; + + // add and wrap around the buffer + s = (s + 1) & NMASK; + r = (r + 1) & NMASK; + + // Register the string in text_buf[r..r+F-1] + InsertNode(r); + } + + while(i++ < last_match_length) + { + // After the end of text + DeleteNode(s); // no need to read, but + s = (s + 1) & NMASK; + r = (r + 1) & NMASK; + if(--len) + InsertNode(r); // buffer may not be empty + } + } while(len > 0); // until length of string to be processed is zero + + if(code_buf_ptr > 1) + { + // Send remaining code. + for(i=0; i < code_buf_ptr; i++) + OutBuf[OutSize++]=code_buf[i]; + + codesize += code_buf_ptr; + } + + FileSize= (BYTE*)OutBuf; + FileSize[0]= CPRS_LZ77_TAG; + FileSize[1]= ((InSize>>0)&0xFF); + FileSize[2]= ((InSize>>8)&0xFF); + FileSize[3]= ((InSize>>16)&0xFF); +} + +/* InChar() **************************** + Get the next character from the input stream, or -1 for end of file. +*/ +int InChar() +{ + return (InOffset < InSize) ? InBuf[InOffset++] : -1; +} + +// EOF +// + +int main(int argc, char ** argv) +{ + FILE * in, * out; + + if ( argc != 3 ) { + fprintf(stderr, "Usage : %s \n", argv[0]); + return -1; + } + + in = fopen(argv[1], "rb"); + out = fopen(argv[2], "wb"); + if ( in == 0 ) { + fprintf(stderr, "FATAL : Could not open %s\n", argv[1]); + return -2; + } + if ( out == 0 ) { + fprintf(stderr, "FATAL : Could not open %s\n", argv[2]); + return -2; + } + + fseek(in, 0, SEEK_END); + InSize = ftell(in); + fseek(in, 0, SEEK_SET); + + InBuf = malloc(InSize); + fread(InBuf, 1, InSize, in); + OutSize = InSize + (InSize>>3) + 16; + OutBuf = malloc(OutSize); + + CompressLZ77(); + OutSize = ALIGN4(OutSize); + fwrite(OutBuf, 1, OutSize, out); + + free(InBuf); + free(OutBuf); + fclose(in); + fclose(out); + + return 0; +} diff --git a/tools/ndsbuilder/Debug/ndsbuilder.exe b/tools/ndsbuilder/Debug/ndsbuilder.exe new file mode 100644 index 0000000000000000000000000000000000000000..482f00c8ea29775f0cef77c5fb983db8271655cd GIT binary patch literal 29696 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 +#include +#include +#include + +typedef unsigned int u32; +typedef unsigned short u16; +typedef unsigned char u8; + +unsigned int filesize(FILE * f) +{ + fseek(f, 0, SEEK_END); + unsigned int size = ftell(f); + fseek(f, 0, SEEK_SET); + return size; +} + +unsigned int align(unsigned int value) +{ + return value + (4-(value % 4)); +} + +struct NDSMicroHeader { + char title[12]; + u32 gamecode; + u16 makercode; + u8 unitcode; + u8 seed; + u8 capacity; + char reserved[9]; + u8 version; + u8 autostart; + u32 arm9_offset; + u32 arm9_entry; + u32 arm9_address; + u32 arm9_size; + u32 arm7_offset; + u32 arm7_entry; + u32 arm7_address; + u32 arm7_size; + + NDSMicroHeader() { + assert(sizeof(*this) == 64); + memset(this, 0, sizeof(*this)); + arm9_entry = arm9_address = 0x2000000; + arm7_entry = arm7_address = 0x37F8000; + arm9_offset = 64; + } + + void build(FILE * arm7, FILE * arm9) { + arm9_size = filesize(arm9); + arm7_size = filesize(arm7); + arm7_offset = 64 + align(arm9_size); + } +}; + +int main(int argc, char ** argv) +{ + NDSMicroHeader header; + FILE * arm9 = 0; + FILE * arm7 = 0; + FILE * nds = 0; + u8 * buf = 0; + + if ( argc >= 4 ) { + nds = fopen(argv[1], "wb"); + if ( nds == 0 ) { + fprintf(stderr, "Could not open %s\n", argv[1]); + goto error; + } + arm9 = fopen(argv[2], "rb"); + if ( arm9 == 0 ) { + fprintf(stderr, "Could not open %s\n", argv[2]); + goto error; + } + arm7 = fopen(argv[3], "rb"); + if ( arm7 == 0 ) { + fprintf(stderr, "Could not open %s\n", argv[3]); + goto error; + } + if ( argc >= 5 ) + strncpy(header.title, argv[4], 12); + + header.build(arm7, arm9); + + fwrite(& header, sizeof(NDSMicroHeader), 1, nds); + + buf = new u8[header.arm9_size]; + fread(buf, header.arm9_size, 1, arm9); + fseek(nds, header.arm9_offset, SEEK_SET); + fwrite(buf, header.arm9_size, 1, nds); + delete buf; + + buf = new u8[header.arm7_size]; + fread(buf, header.arm7_size, 1, arm7); + fseek(nds, header.arm7_offset, SEEK_SET); + fwrite(buf, header.arm7_size, 1, nds); + delete buf; + } else { + printf("Usage : %s [title]\n", argv[0]); + } + +error: + if ( arm9 ) + fclose(arm9); + if ( arm7 ) + fclose(arm7); + if ( nds ) + fclose(nds); + + return 0; +} \ No newline at end of file diff --git a/tools/ndsbuilder/ndsbuilder/ndsbuilder.vcproj b/tools/ndsbuilder/ndsbuilder/ndsbuilder.vcproj new file mode 100644 index 0000000..a292f88 --- /dev/null +++ b/tools/ndsbuilder/ndsbuilder/ndsbuilder.vcproj @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/projection.py b/tools/projection.py new file mode 100644 index 0000000..e27f14f --- /dev/null +++ b/tools/projection.py @@ -0,0 +1,36 @@ +import math +import sys + +def cos(deg): + return math.cos(math.radians(deg)) + +def sin(deg): + return math.sin(math.radians(deg)) + +def fixed12(value): + return int(value*(2**12)) + +fov = 50.0 +ratio = 256.0/192.0 +near = 0.1 +far = 40.0 + +f = cos(fov/2.0)/sin(fov/2.0) + +m00 = f / ratio +m11 = f +m22 = (near+far)/(near-far) +m23 = -1.0 +m32 = (2.0*near*far)/(near-far) + +print "fov = " + str(fov) +print "ratio = " + str(ratio) +print "near = " + str(near) +print "far = " + str(far) +print "" +print str(fixed12(m00)) + " 0, 0, 0" +print "0, " + str(fixed12(m11)) + ", 0, 0" +print "0, 0, " + str(fixed12(m22)) + ", " + str(fixed12(m23)) +print "0, 0, " + str(fixed12(m32)) + ", 0" + +sys.stdin.readline() diff --git a/tools/tracker/Makefile b/tools/tracker/Makefile new file mode 100644 index 0000000..7dceb48 --- /dev/null +++ b/tools/tracker/Makefile @@ -0,0 +1,719 @@ +# programs +CC = gcc +CXX = g++ +STRIP = strip +RM = rm + +# flags +CFLAGS = -g -Wall `sdl-config --cflags` `pkg-config portaudio-2.0 --cflags` +CXXFLAGS = $(CFLAGS) +LIBS = `sdl-config --libs` `pkg-config portaudio-2.0 --libs` -lfftw3f + +# directories +SOURCEDIR = src +HEADERDIR = +LIBDIR = + +# generated variables +CFILES = $(foreach dir,$(SOURCEDIR),$(wildcard $(dir)/*.c)) +CPPFILES = $(foreach dir,$(SOURCEDIR),$(wildcard $(dir)/*.cpp)) +HEADERS = $(CFILES:.c=.h) $(CPPFILES:.cpp=.h) +OBJS = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o) +LIBS += $(foreach dir,$(LIBDIR),-L $(dir)) +INCLUDE = $(foreach dir,$(HEADERDIR),-I $(dir)) +PROJECT = $(notdir $(CURDIR)) + +# selecting linker +ifeq ($(strip $(CPPFILES)), ) + export LD = $(CC) +else + export LD = $(CXX) +endif + +# default compilation +.c.o: %.c + @echo [CC] $< + @$(CC) $(INCLUDE) $(CFLAGS) -o $@ -c $< + +.cpp.o: %.cpp + @echo [CXX] $< + @$(CXX) $(INCLUDE) $(CXXFLAGS) -o $@ -c $< + +# standard rules +$(PROJECT): $(OBJS) + @echo [LINK] $(PROJECT) + @$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + +clean: + @echo Removing objects... + @$(RM) -f $(OBJS) + +mrproper: clean + @echo Removing $(PROJECT) + @$(RM) -f $(PROJECT) + +release: all clean + @echo [STRIP] $(PROJECT) + @$(STRIP) $(PROJECT) + +depend: + makedepend -- $(CXXFLAGS) -- $(CFILES) $(CPPFILES) + +# DO NOT DELETE + +src/channel.o: src/channel.h +src/font.o: src/font.h /usr/include/SDL/SDL.h /usr/include/SDL/SDL_main.h +src/font.o: /usr/include/SDL/SDL_stdinc.h /usr/include/SDL/SDL_config.h +src/font.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/font.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/font.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/font.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/font.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/font.o: /usr/include/endian.h /usr/include/bits/endian.h +src/font.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/font.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/font.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h +src/font.o: /usr/include/stdio.h /usr/include/libio.h +src/font.o: /usr/include/_G_config.h /usr/include/wchar.h +src/font.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +src/font.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h +src/font.o: /usr/include/bits/waitstatus.h /usr/include/xlocale.h +src/font.o: /usr/include/alloca.h /usr/include/string.h +src/font.o: /usr/include/strings.h /usr/include/inttypes.h +src/font.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/font.o: /usr/include/ctype.h /usr/include/iconv.h +src/font.o: /usr/include/SDL/begin_code.h /usr/include/SDL/close_code.h +src/font.o: /usr/include/SDL/SDL_audio.h /usr/include/SDL/SDL_error.h +src/font.o: /usr/include/SDL/SDL_endian.h /usr/include/SDL/SDL_mutex.h +src/font.o: /usr/include/SDL/SDL_thread.h /usr/include/SDL/SDL_rwops.h +src/font.o: /usr/include/SDL/SDL_cdrom.h /usr/include/SDL/SDL_cpuinfo.h +src/font.o: /usr/include/SDL/SDL_events.h /usr/include/SDL/SDL_active.h +src/font.o: /usr/include/SDL/SDL_keyboard.h /usr/include/SDL/SDL_keysym.h +src/font.o: /usr/include/SDL/SDL_mouse.h /usr/include/SDL/SDL_video.h +src/font.o: /usr/include/SDL/SDL_joystick.h /usr/include/SDL/SDL_quit.h +src/font.o: /usr/include/SDL/SDL_loadso.h /usr/include/SDL/SDL_timer.h +src/font.o: /usr/include/SDL/SDL_version.h +src/guichannel.o: src/guichannel.h src/guielement.h /usr/include/SDL/SDL.h +src/guichannel.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guichannel.o: /usr/include/SDL/SDL_config.h +src/guichannel.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/guichannel.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/guichannel.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/guichannel.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/guichannel.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/guichannel.o: /usr/include/endian.h /usr/include/bits/endian.h +src/guichannel.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/guichannel.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/guichannel.o: /usr/include/sys/sysmacros.h +src/guichannel.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guichannel.o: /usr/include/libio.h /usr/include/_G_config.h +src/guichannel.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guichannel.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guichannel.o: /usr/include/bits/waitflags.h +src/guichannel.o: /usr/include/bits/waitstatus.h /usr/include/xlocale.h +src/guichannel.o: /usr/include/alloca.h /usr/include/string.h +src/guichannel.o: /usr/include/strings.h /usr/include/inttypes.h +src/guichannel.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/guichannel.o: /usr/include/ctype.h /usr/include/iconv.h +src/guichannel.o: /usr/include/SDL/begin_code.h /usr/include/SDL/close_code.h +src/guichannel.o: /usr/include/SDL/SDL_audio.h /usr/include/SDL/SDL_error.h +src/guichannel.o: /usr/include/SDL/SDL_endian.h /usr/include/SDL/SDL_mutex.h +src/guichannel.o: /usr/include/SDL/SDL_thread.h /usr/include/SDL/SDL_rwops.h +src/guichannel.o: /usr/include/SDL/SDL_cdrom.h /usr/include/SDL/SDL_cpuinfo.h +src/guichannel.o: /usr/include/SDL/SDL_events.h /usr/include/SDL/SDL_active.h +src/guichannel.o: /usr/include/SDL/SDL_keyboard.h +src/guichannel.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guichannel.o: /usr/include/SDL/SDL_video.h +src/guichannel.o: /usr/include/SDL/SDL_joystick.h /usr/include/SDL/SDL_quit.h +src/guichannel.o: /usr/include/SDL/SDL_loadso.h /usr/include/SDL/SDL_timer.h +src/guichannel.o: /usr/include/SDL/SDL_version.h src/guievents.h +src/guichannel.o: src/channel.h src/copy.h src/synth.h +src/guichannel.o: /usr/include/portaudio.h src/tune.h src/psg.h src/midi.h +src/guichannel.o: src/font.h src/palette.h +src/guiclock.o: src/guiclock.h src/guielement.h /usr/include/SDL/SDL.h +src/guiclock.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guiclock.o: /usr/include/SDL/SDL_config.h /usr/include/SDL/SDL_platform.h +src/guiclock.o: /usr/include/sys/types.h /usr/include/features.h +src/guiclock.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/guiclock.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/guiclock.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/guiclock.o: /usr/include/time.h /usr/include/endian.h +src/guiclock.o: /usr/include/bits/endian.h /usr/include/sys/select.h +src/guiclock.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +src/guiclock.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +src/guiclock.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guiclock.o: /usr/include/libio.h /usr/include/_G_config.h +src/guiclock.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guiclock.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guiclock.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/guiclock.o: /usr/include/xlocale.h /usr/include/alloca.h +src/guiclock.o: /usr/include/string.h /usr/include/strings.h +src/guiclock.o: /usr/include/inttypes.h /usr/include/stdint.h +src/guiclock.o: /usr/include/bits/wchar.h /usr/include/ctype.h +src/guiclock.o: /usr/include/iconv.h /usr/include/SDL/begin_code.h +src/guiclock.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/guiclock.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/guiclock.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/guiclock.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guiclock.o: /usr/include/SDL/SDL_cpuinfo.h /usr/include/SDL/SDL_events.h +src/guiclock.o: /usr/include/SDL/SDL_active.h /usr/include/SDL/SDL_keyboard.h +src/guiclock.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guiclock.o: /usr/include/SDL/SDL_video.h /usr/include/SDL/SDL_joystick.h +src/guiclock.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guiclock.o: /usr/include/SDL/SDL_timer.h /usr/include/SDL/SDL_version.h +src/guiclock.o: src/guievents.h src/tune.h src/channel.h src/font.h +src/guiclock.o: src/palette.h +src/gui.o: src/gui.h /usr/include/SDL/SDL.h /usr/include/SDL/SDL_main.h +src/gui.o: /usr/include/SDL/SDL_stdinc.h /usr/include/SDL/SDL_config.h +src/gui.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/gui.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/gui.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/gui.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/gui.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/gui.o: /usr/include/endian.h /usr/include/bits/endian.h +src/gui.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/gui.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/gui.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h +src/gui.o: /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h +src/gui.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/gui.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/gui.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/gui.o: /usr/include/xlocale.h /usr/include/alloca.h /usr/include/string.h +src/gui.o: /usr/include/strings.h /usr/include/inttypes.h +src/gui.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/gui.o: /usr/include/ctype.h /usr/include/iconv.h +src/gui.o: /usr/include/SDL/begin_code.h /usr/include/SDL/close_code.h +src/gui.o: /usr/include/SDL/SDL_audio.h /usr/include/SDL/SDL_error.h +src/gui.o: /usr/include/SDL/SDL_endian.h /usr/include/SDL/SDL_mutex.h +src/gui.o: /usr/include/SDL/SDL_thread.h /usr/include/SDL/SDL_rwops.h +src/gui.o: /usr/include/SDL/SDL_cdrom.h /usr/include/SDL/SDL_cpuinfo.h +src/gui.o: /usr/include/SDL/SDL_events.h /usr/include/SDL/SDL_active.h +src/gui.o: /usr/include/SDL/SDL_keyboard.h /usr/include/SDL/SDL_keysym.h +src/gui.o: /usr/include/SDL/SDL_mouse.h /usr/include/SDL/SDL_video.h +src/gui.o: /usr/include/SDL/SDL_joystick.h /usr/include/SDL/SDL_quit.h +src/gui.o: /usr/include/SDL/SDL_loadso.h /usr/include/SDL/SDL_timer.h +src/gui.o: /usr/include/SDL/SDL_version.h src/guielement.h src/guievents.h +src/guielement.o: src/guielement.h /usr/include/SDL/SDL.h +src/guielement.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guielement.o: /usr/include/SDL/SDL_config.h +src/guielement.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/guielement.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/guielement.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/guielement.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/guielement.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/guielement.o: /usr/include/endian.h /usr/include/bits/endian.h +src/guielement.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/guielement.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/guielement.o: /usr/include/sys/sysmacros.h +src/guielement.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guielement.o: /usr/include/libio.h /usr/include/_G_config.h +src/guielement.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guielement.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guielement.o: /usr/include/bits/waitflags.h +src/guielement.o: /usr/include/bits/waitstatus.h /usr/include/xlocale.h +src/guielement.o: /usr/include/alloca.h /usr/include/string.h +src/guielement.o: /usr/include/strings.h /usr/include/inttypes.h +src/guielement.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/guielement.o: /usr/include/ctype.h /usr/include/iconv.h +src/guielement.o: /usr/include/SDL/begin_code.h /usr/include/SDL/close_code.h +src/guielement.o: /usr/include/SDL/SDL_audio.h /usr/include/SDL/SDL_error.h +src/guielement.o: /usr/include/SDL/SDL_endian.h /usr/include/SDL/SDL_mutex.h +src/guielement.o: /usr/include/SDL/SDL_thread.h /usr/include/SDL/SDL_rwops.h +src/guielement.o: /usr/include/SDL/SDL_cdrom.h /usr/include/SDL/SDL_cpuinfo.h +src/guielement.o: /usr/include/SDL/SDL_events.h /usr/include/SDL/SDL_active.h +src/guielement.o: /usr/include/SDL/SDL_keyboard.h +src/guielement.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guielement.o: /usr/include/SDL/SDL_video.h +src/guielement.o: /usr/include/SDL/SDL_joystick.h /usr/include/SDL/SDL_quit.h +src/guielement.o: /usr/include/SDL/SDL_loadso.h /usr/include/SDL/SDL_timer.h +src/guielement.o: /usr/include/SDL/SDL_version.h src/guievents.h +src/guievents.o: src/guievents.h /usr/include/SDL/SDL.h +src/guievents.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guievents.o: /usr/include/SDL/SDL_config.h +src/guievents.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/guievents.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/guievents.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/guievents.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/guievents.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/guievents.o: /usr/include/endian.h /usr/include/bits/endian.h +src/guievents.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/guievents.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/guievents.o: /usr/include/sys/sysmacros.h +src/guievents.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guievents.o: /usr/include/libio.h /usr/include/_G_config.h +src/guievents.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guievents.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guievents.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/guievents.o: /usr/include/xlocale.h /usr/include/alloca.h +src/guievents.o: /usr/include/string.h /usr/include/strings.h +src/guievents.o: /usr/include/inttypes.h /usr/include/stdint.h +src/guievents.o: /usr/include/bits/wchar.h /usr/include/ctype.h +src/guievents.o: /usr/include/iconv.h /usr/include/SDL/begin_code.h +src/guievents.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/guievents.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/guievents.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/guievents.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guievents.o: /usr/include/SDL/SDL_cpuinfo.h /usr/include/SDL/SDL_events.h +src/guievents.o: /usr/include/SDL/SDL_active.h +src/guievents.o: /usr/include/SDL/SDL_keyboard.h +src/guievents.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guievents.o: /usr/include/SDL/SDL_video.h /usr/include/SDL/SDL_joystick.h +src/guievents.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guievents.o: /usr/include/SDL/SDL_timer.h /usr/include/SDL/SDL_version.h +src/guimute.o: src/guimute.h src/guielement.h /usr/include/SDL/SDL.h +src/guimute.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guimute.o: /usr/include/SDL/SDL_config.h /usr/include/SDL/SDL_platform.h +src/guimute.o: /usr/include/sys/types.h /usr/include/features.h +src/guimute.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/guimute.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/guimute.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/guimute.o: /usr/include/time.h /usr/include/endian.h +src/guimute.o: /usr/include/bits/endian.h /usr/include/sys/select.h +src/guimute.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +src/guimute.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +src/guimute.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guimute.o: /usr/include/libio.h /usr/include/_G_config.h +src/guimute.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guimute.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guimute.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/guimute.o: /usr/include/xlocale.h /usr/include/alloca.h +src/guimute.o: /usr/include/string.h /usr/include/strings.h +src/guimute.o: /usr/include/inttypes.h /usr/include/stdint.h +src/guimute.o: /usr/include/bits/wchar.h /usr/include/ctype.h +src/guimute.o: /usr/include/iconv.h /usr/include/SDL/begin_code.h +src/guimute.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/guimute.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/guimute.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/guimute.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guimute.o: /usr/include/SDL/SDL_cpuinfo.h /usr/include/SDL/SDL_events.h +src/guimute.o: /usr/include/SDL/SDL_active.h /usr/include/SDL/SDL_keyboard.h +src/guimute.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guimute.o: /usr/include/SDL/SDL_video.h /usr/include/SDL/SDL_joystick.h +src/guimute.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guimute.o: /usr/include/SDL/SDL_timer.h /usr/include/SDL/SDL_version.h +src/guimute.o: src/guievents.h src/synth.h /usr/include/portaudio.h +src/guimute.o: src/tune.h src/channel.h src/psg.h src/font.h src/palette.h +src/guiname.o: src/guiname.h src/guielement.h /usr/include/SDL/SDL.h +src/guiname.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guiname.o: /usr/include/SDL/SDL_config.h /usr/include/SDL/SDL_platform.h +src/guiname.o: /usr/include/sys/types.h /usr/include/features.h +src/guiname.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/guiname.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/guiname.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/guiname.o: /usr/include/time.h /usr/include/endian.h +src/guiname.o: /usr/include/bits/endian.h /usr/include/sys/select.h +src/guiname.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +src/guiname.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +src/guiname.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guiname.o: /usr/include/libio.h /usr/include/_G_config.h +src/guiname.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guiname.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guiname.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/guiname.o: /usr/include/xlocale.h /usr/include/alloca.h +src/guiname.o: /usr/include/string.h /usr/include/strings.h +src/guiname.o: /usr/include/inttypes.h /usr/include/stdint.h +src/guiname.o: /usr/include/bits/wchar.h /usr/include/ctype.h +src/guiname.o: /usr/include/iconv.h /usr/include/SDL/begin_code.h +src/guiname.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/guiname.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/guiname.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/guiname.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guiname.o: /usr/include/SDL/SDL_cpuinfo.h /usr/include/SDL/SDL_events.h +src/guiname.o: /usr/include/SDL/SDL_active.h /usr/include/SDL/SDL_keyboard.h +src/guiname.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guiname.o: /usr/include/SDL/SDL_video.h /usr/include/SDL/SDL_joystick.h +src/guiname.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guiname.o: /usr/include/SDL/SDL_timer.h /usr/include/SDL/SDL_version.h +src/guiname.o: src/guievents.h src/font.h +src/guioscilloscope.o: src/guioscilloscope.h src/guielement.h +src/guioscilloscope.o: /usr/include/SDL/SDL.h /usr/include/SDL/SDL_main.h +src/guioscilloscope.o: /usr/include/SDL/SDL_stdinc.h +src/guioscilloscope.o: /usr/include/SDL/SDL_config.h +src/guioscilloscope.o: /usr/include/SDL/SDL_platform.h +src/guioscilloscope.o: /usr/include/sys/types.h /usr/include/features.h +src/guioscilloscope.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/guioscilloscope.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/guioscilloscope.o: /usr/include/bits/types.h +src/guioscilloscope.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/guioscilloscope.o: /usr/include/endian.h /usr/include/bits/endian.h +src/guioscilloscope.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/guioscilloscope.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/guioscilloscope.o: /usr/include/sys/sysmacros.h +src/guioscilloscope.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guioscilloscope.o: /usr/include/libio.h /usr/include/_G_config.h +src/guioscilloscope.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guioscilloscope.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guioscilloscope.o: /usr/include/bits/waitflags.h +src/guioscilloscope.o: /usr/include/bits/waitstatus.h /usr/include/xlocale.h +src/guioscilloscope.o: /usr/include/alloca.h /usr/include/string.h +src/guioscilloscope.o: /usr/include/strings.h /usr/include/inttypes.h +src/guioscilloscope.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/guioscilloscope.o: /usr/include/ctype.h /usr/include/iconv.h +src/guioscilloscope.o: /usr/include/SDL/begin_code.h +src/guioscilloscope.o: /usr/include/SDL/close_code.h +src/guioscilloscope.o: /usr/include/SDL/SDL_audio.h +src/guioscilloscope.o: /usr/include/SDL/SDL_error.h +src/guioscilloscope.o: /usr/include/SDL/SDL_endian.h +src/guioscilloscope.o: /usr/include/SDL/SDL_mutex.h +src/guioscilloscope.o: /usr/include/SDL/SDL_thread.h +src/guioscilloscope.o: /usr/include/SDL/SDL_rwops.h +src/guioscilloscope.o: /usr/include/SDL/SDL_cdrom.h +src/guioscilloscope.o: /usr/include/SDL/SDL_cpuinfo.h +src/guioscilloscope.o: /usr/include/SDL/SDL_events.h +src/guioscilloscope.o: /usr/include/SDL/SDL_active.h +src/guioscilloscope.o: /usr/include/SDL/SDL_keyboard.h +src/guioscilloscope.o: /usr/include/SDL/SDL_keysym.h +src/guioscilloscope.o: /usr/include/SDL/SDL_mouse.h +src/guioscilloscope.o: /usr/include/SDL/SDL_video.h +src/guioscilloscope.o: /usr/include/SDL/SDL_joystick.h +src/guioscilloscope.o: /usr/include/SDL/SDL_quit.h +src/guioscilloscope.o: /usr/include/SDL/SDL_loadso.h +src/guioscilloscope.o: /usr/include/SDL/SDL_timer.h +src/guioscilloscope.o: /usr/include/SDL/SDL_version.h src/guievents.h +src/guioscilloscope.o: src/synth.h /usr/include/portaudio.h src/tune.h +src/guioscilloscope.o: src/channel.h src/psg.h src/palette.h +src/guispectrum.o: src/guispectrum.h /usr/include/fftw3.h +src/guispectrum.o: /usr/include/stdio.h /usr/include/features.h +src/guispectrum.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/guispectrum.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/guispectrum.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/guispectrum.o: /usr/include/libio.h /usr/include/_G_config.h +src/guispectrum.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guispectrum.o: /usr/include/bits/sys_errlist.h src/guielement.h +src/guispectrum.o: /usr/include/SDL/SDL.h /usr/include/SDL/SDL_main.h +src/guispectrum.o: /usr/include/SDL/SDL_stdinc.h +src/guispectrum.o: /usr/include/SDL/SDL_config.h +src/guispectrum.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/guispectrum.o: /usr/include/time.h /usr/include/endian.h +src/guispectrum.o: /usr/include/bits/endian.h /usr/include/sys/select.h +src/guispectrum.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +src/guispectrum.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +src/guispectrum.o: /usr/include/bits/pthreadtypes.h /usr/include/stdlib.h +src/guispectrum.o: /usr/include/bits/waitflags.h +src/guispectrum.o: /usr/include/bits/waitstatus.h /usr/include/xlocale.h +src/guispectrum.o: /usr/include/alloca.h /usr/include/string.h +src/guispectrum.o: /usr/include/strings.h /usr/include/inttypes.h +src/guispectrum.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/guispectrum.o: /usr/include/ctype.h /usr/include/iconv.h +src/guispectrum.o: /usr/include/SDL/begin_code.h +src/guispectrum.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/guispectrum.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/guispectrum.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/guispectrum.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guispectrum.o: /usr/include/SDL/SDL_cpuinfo.h +src/guispectrum.o: /usr/include/SDL/SDL_events.h +src/guispectrum.o: /usr/include/SDL/SDL_active.h +src/guispectrum.o: /usr/include/SDL/SDL_keyboard.h +src/guispectrum.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guispectrum.o: /usr/include/SDL/SDL_video.h +src/guispectrum.o: /usr/include/SDL/SDL_joystick.h +src/guispectrum.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guispectrum.o: /usr/include/SDL/SDL_timer.h +src/guispectrum.o: /usr/include/SDL/SDL_version.h src/guievents.h src/synth.h +src/guispectrum.o: /usr/include/portaudio.h src/tune.h src/channel.h +src/guispectrum.o: src/psg.h /usr/include/math.h /usr/include/bits/huge_val.h +src/guispectrum.o: /usr/include/bits/huge_valf.h +src/guispectrum.o: /usr/include/bits/huge_vall.h /usr/include/bits/inf.h +src/guispectrum.o: /usr/include/bits/nan.h /usr/include/bits/mathdef.h +src/guispectrum.o: /usr/include/bits/mathcalls.h src/palette.h +src/guistatusbar.o: src/guistatusbar.h src/guielement.h +src/guistatusbar.o: /usr/include/SDL/SDL.h /usr/include/SDL/SDL_main.h +src/guistatusbar.o: /usr/include/SDL/SDL_stdinc.h +src/guistatusbar.o: /usr/include/SDL/SDL_config.h +src/guistatusbar.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/guistatusbar.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/guistatusbar.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/guistatusbar.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/guistatusbar.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/guistatusbar.o: /usr/include/endian.h /usr/include/bits/endian.h +src/guistatusbar.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/guistatusbar.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/guistatusbar.o: /usr/include/sys/sysmacros.h +src/guistatusbar.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guistatusbar.o: /usr/include/libio.h /usr/include/_G_config.h +src/guistatusbar.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guistatusbar.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guistatusbar.o: /usr/include/bits/waitflags.h +src/guistatusbar.o: /usr/include/bits/waitstatus.h /usr/include/xlocale.h +src/guistatusbar.o: /usr/include/alloca.h /usr/include/string.h +src/guistatusbar.o: /usr/include/strings.h /usr/include/inttypes.h +src/guistatusbar.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/guistatusbar.o: /usr/include/ctype.h /usr/include/iconv.h +src/guistatusbar.o: /usr/include/SDL/begin_code.h +src/guistatusbar.o: /usr/include/SDL/close_code.h +src/guistatusbar.o: /usr/include/SDL/SDL_audio.h /usr/include/SDL/SDL_error.h +src/guistatusbar.o: /usr/include/SDL/SDL_endian.h +src/guistatusbar.o: /usr/include/SDL/SDL_mutex.h +src/guistatusbar.o: /usr/include/SDL/SDL_thread.h +src/guistatusbar.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guistatusbar.o: /usr/include/SDL/SDL_cpuinfo.h +src/guistatusbar.o: /usr/include/SDL/SDL_events.h +src/guistatusbar.o: /usr/include/SDL/SDL_active.h +src/guistatusbar.o: /usr/include/SDL/SDL_keyboard.h +src/guistatusbar.o: /usr/include/SDL/SDL_keysym.h +src/guistatusbar.o: /usr/include/SDL/SDL_mouse.h /usr/include/SDL/SDL_video.h +src/guistatusbar.o: /usr/include/SDL/SDL_joystick.h +src/guistatusbar.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guistatusbar.o: /usr/include/SDL/SDL_timer.h +src/guistatusbar.o: /usr/include/SDL/SDL_version.h src/guievents.h src/font.h +src/guitime.o: src/guitime.h src/guielement.h /usr/include/SDL/SDL.h +src/guitime.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guitime.o: /usr/include/SDL/SDL_config.h /usr/include/SDL/SDL_platform.h +src/guitime.o: /usr/include/sys/types.h /usr/include/features.h +src/guitime.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/guitime.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/guitime.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/guitime.o: /usr/include/time.h /usr/include/endian.h +src/guitime.o: /usr/include/bits/endian.h /usr/include/sys/select.h +src/guitime.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +src/guitime.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +src/guitime.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guitime.o: /usr/include/libio.h /usr/include/_G_config.h +src/guitime.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guitime.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guitime.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/guitime.o: /usr/include/xlocale.h /usr/include/alloca.h +src/guitime.o: /usr/include/string.h /usr/include/strings.h +src/guitime.o: /usr/include/inttypes.h /usr/include/stdint.h +src/guitime.o: /usr/include/bits/wchar.h /usr/include/ctype.h +src/guitime.o: /usr/include/iconv.h /usr/include/SDL/begin_code.h +src/guitime.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/guitime.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/guitime.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/guitime.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guitime.o: /usr/include/SDL/SDL_cpuinfo.h /usr/include/SDL/SDL_events.h +src/guitime.o: /usr/include/SDL/SDL_active.h /usr/include/SDL/SDL_keyboard.h +src/guitime.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guitime.o: /usr/include/SDL/SDL_video.h /usr/include/SDL/SDL_joystick.h +src/guitime.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guitime.o: /usr/include/SDL/SDL_timer.h /usr/include/SDL/SDL_version.h +src/guitime.o: src/guievents.h src/synth.h /usr/include/portaudio.h +src/guitime.o: src/tune.h src/channel.h src/psg.h src/font.h src/palette.h +src/guitime.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h +src/guitime.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h +src/guitime.o: /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h +src/guivalue.o: src/guivalue.h src/guielement.h /usr/include/SDL/SDL.h +src/guivalue.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guivalue.o: /usr/include/SDL/SDL_config.h /usr/include/SDL/SDL_platform.h +src/guivalue.o: /usr/include/sys/types.h /usr/include/features.h +src/guivalue.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/guivalue.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/guivalue.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/guivalue.o: /usr/include/time.h /usr/include/endian.h +src/guivalue.o: /usr/include/bits/endian.h /usr/include/sys/select.h +src/guivalue.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +src/guivalue.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +src/guivalue.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guivalue.o: /usr/include/libio.h /usr/include/_G_config.h +src/guivalue.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guivalue.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guivalue.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/guivalue.o: /usr/include/xlocale.h /usr/include/alloca.h +src/guivalue.o: /usr/include/string.h /usr/include/strings.h +src/guivalue.o: /usr/include/inttypes.h /usr/include/stdint.h +src/guivalue.o: /usr/include/bits/wchar.h /usr/include/ctype.h +src/guivalue.o: /usr/include/iconv.h /usr/include/SDL/begin_code.h +src/guivalue.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/guivalue.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/guivalue.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/guivalue.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guivalue.o: /usr/include/SDL/SDL_cpuinfo.h /usr/include/SDL/SDL_events.h +src/guivalue.o: /usr/include/SDL/SDL_active.h /usr/include/SDL/SDL_keyboard.h +src/guivalue.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guivalue.o: /usr/include/SDL/SDL_video.h /usr/include/SDL/SDL_joystick.h +src/guivalue.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guivalue.o: /usr/include/SDL/SDL_timer.h /usr/include/SDL/SDL_version.h +src/guivalue.o: src/guievents.h src/font.h +src/guivu.o: src/guivu.h src/guielement.h /usr/include/SDL/SDL.h +src/guivu.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guivu.o: /usr/include/SDL/SDL_config.h /usr/include/SDL/SDL_platform.h +src/guivu.o: /usr/include/sys/types.h /usr/include/features.h +src/guivu.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/guivu.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/guivu.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/guivu.o: /usr/include/time.h /usr/include/endian.h +src/guivu.o: /usr/include/bits/endian.h /usr/include/sys/select.h +src/guivu.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +src/guivu.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +src/guivu.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guivu.o: /usr/include/libio.h /usr/include/_G_config.h +src/guivu.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guivu.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guivu.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/guivu.o: /usr/include/xlocale.h /usr/include/alloca.h +src/guivu.o: /usr/include/string.h /usr/include/strings.h +src/guivu.o: /usr/include/inttypes.h /usr/include/stdint.h +src/guivu.o: /usr/include/bits/wchar.h /usr/include/ctype.h +src/guivu.o: /usr/include/iconv.h /usr/include/SDL/begin_code.h +src/guivu.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/guivu.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/guivu.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/guivu.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/guivu.o: /usr/include/SDL/SDL_cpuinfo.h /usr/include/SDL/SDL_events.h +src/guivu.o: /usr/include/SDL/SDL_active.h /usr/include/SDL/SDL_keyboard.h +src/guivu.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guivu.o: /usr/include/SDL/SDL_video.h /usr/include/SDL/SDL_joystick.h +src/guivu.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/guivu.o: /usr/include/SDL/SDL_timer.h /usr/include/SDL/SDL_version.h +src/guivu.o: src/guievents.h src/synth.h /usr/include/portaudio.h src/tune.h +src/guivu.o: src/channel.h src/psg.h /usr/include/math.h +src/guivu.o: /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h +src/guivu.o: /usr/include/bits/huge_vall.h /usr/include/bits/inf.h +src/guivu.o: /usr/include/bits/nan.h /usr/include/bits/mathdef.h +src/guivu.o: /usr/include/bits/mathcalls.h src/palette.h +src/guiwaveout.o: src/guiwaveout.h src/guielement.h /usr/include/SDL/SDL.h +src/guiwaveout.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/guiwaveout.o: /usr/include/SDL/SDL_config.h +src/guiwaveout.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/guiwaveout.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/guiwaveout.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/guiwaveout.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/guiwaveout.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/guiwaveout.o: /usr/include/endian.h /usr/include/bits/endian.h +src/guiwaveout.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/guiwaveout.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/guiwaveout.o: /usr/include/sys/sysmacros.h +src/guiwaveout.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/guiwaveout.o: /usr/include/libio.h /usr/include/_G_config.h +src/guiwaveout.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/guiwaveout.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/guiwaveout.o: /usr/include/bits/waitflags.h +src/guiwaveout.o: /usr/include/bits/waitstatus.h /usr/include/xlocale.h +src/guiwaveout.o: /usr/include/alloca.h /usr/include/string.h +src/guiwaveout.o: /usr/include/strings.h /usr/include/inttypes.h +src/guiwaveout.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/guiwaveout.o: /usr/include/ctype.h /usr/include/iconv.h +src/guiwaveout.o: /usr/include/SDL/begin_code.h /usr/include/SDL/close_code.h +src/guiwaveout.o: /usr/include/SDL/SDL_audio.h /usr/include/SDL/SDL_error.h +src/guiwaveout.o: /usr/include/SDL/SDL_endian.h /usr/include/SDL/SDL_mutex.h +src/guiwaveout.o: /usr/include/SDL/SDL_thread.h /usr/include/SDL/SDL_rwops.h +src/guiwaveout.o: /usr/include/SDL/SDL_cdrom.h /usr/include/SDL/SDL_cpuinfo.h +src/guiwaveout.o: /usr/include/SDL/SDL_events.h /usr/include/SDL/SDL_active.h +src/guiwaveout.o: /usr/include/SDL/SDL_keyboard.h +src/guiwaveout.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/guiwaveout.o: /usr/include/SDL/SDL_video.h +src/guiwaveout.o: /usr/include/SDL/SDL_joystick.h /usr/include/SDL/SDL_quit.h +src/guiwaveout.o: /usr/include/SDL/SDL_loadso.h /usr/include/SDL/SDL_timer.h +src/guiwaveout.o: /usr/include/SDL/SDL_version.h src/guievents.h +src/guiwaveout.o: src/guiname.h src/guistatusbar.h src/synth.h +src/guiwaveout.o: /usr/include/portaudio.h src/tune.h src/channel.h src/psg.h +src/main.o: /usr/include/SDL/SDL.h /usr/include/SDL/SDL_main.h +src/main.o: /usr/include/SDL/SDL_stdinc.h /usr/include/SDL/SDL_config.h +src/main.o: /usr/include/SDL/SDL_platform.h /usr/include/sys/types.h +src/main.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/main.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/main.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/main.o: /usr/include/bits/typesizes.h /usr/include/time.h +src/main.o: /usr/include/endian.h /usr/include/bits/endian.h +src/main.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/main.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/main.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h +src/main.o: /usr/include/stdio.h /usr/include/libio.h +src/main.o: /usr/include/_G_config.h /usr/include/wchar.h +src/main.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +src/main.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h +src/main.o: /usr/include/bits/waitstatus.h /usr/include/xlocale.h +src/main.o: /usr/include/alloca.h /usr/include/string.h +src/main.o: /usr/include/strings.h /usr/include/inttypes.h +src/main.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/main.o: /usr/include/ctype.h /usr/include/iconv.h +src/main.o: /usr/include/SDL/begin_code.h /usr/include/SDL/close_code.h +src/main.o: /usr/include/SDL/SDL_audio.h /usr/include/SDL/SDL_error.h +src/main.o: /usr/include/SDL/SDL_endian.h /usr/include/SDL/SDL_mutex.h +src/main.o: /usr/include/SDL/SDL_thread.h /usr/include/SDL/SDL_rwops.h +src/main.o: /usr/include/SDL/SDL_cdrom.h /usr/include/SDL/SDL_cpuinfo.h +src/main.o: /usr/include/SDL/SDL_events.h /usr/include/SDL/SDL_active.h +src/main.o: /usr/include/SDL/SDL_keyboard.h /usr/include/SDL/SDL_keysym.h +src/main.o: /usr/include/SDL/SDL_mouse.h /usr/include/SDL/SDL_video.h +src/main.o: /usr/include/SDL/SDL_joystick.h /usr/include/SDL/SDL_quit.h +src/main.o: /usr/include/SDL/SDL_loadso.h /usr/include/SDL/SDL_timer.h +src/main.o: /usr/include/SDL/SDL_version.h src/font.h src/palette.h src/gui.h +src/main.o: src/guielement.h src/guievents.h src/guichannel.h src/channel.h +src/main.o: src/copy.h src/synth.h /usr/include/portaudio.h src/tune.h +src/main.o: src/psg.h src/guistatusbar.h src/guitime.h src/guiclock.h +src/main.o: src/guivalue.h src/guiname.h src/guimute.h src/guioscilloscope.h +src/main.o: src/guispectrum.h /usr/include/fftw3.h src/guivu.h +src/main.o: src/guiwaveout.h +src/midi.o: src/midi.h /usr/include/math.h /usr/include/features.h +src/midi.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/midi.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/midi.o: /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h +src/midi.o: /usr/include/bits/huge_vall.h /usr/include/bits/inf.h +src/midi.o: /usr/include/bits/nan.h /usr/include/bits/mathdef.h +src/midi.o: /usr/include/bits/mathcalls.h /usr/include/stdio.h +src/midi.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/midi.o: /usr/include/libio.h /usr/include/_G_config.h +src/midi.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/midi.o: /usr/include/bits/sys_errlist.h +src/palette.o: src/palette.h /usr/include/SDL/SDL.h +src/palette.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/palette.o: /usr/include/SDL/SDL_config.h /usr/include/SDL/SDL_platform.h +src/palette.o: /usr/include/sys/types.h /usr/include/features.h +src/palette.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/palette.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/palette.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/palette.o: /usr/include/time.h /usr/include/endian.h +src/palette.o: /usr/include/bits/endian.h /usr/include/sys/select.h +src/palette.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +src/palette.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +src/palette.o: /usr/include/bits/pthreadtypes.h /usr/include/stdio.h +src/palette.o: /usr/include/libio.h /usr/include/_G_config.h +src/palette.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/palette.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +src/palette.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +src/palette.o: /usr/include/xlocale.h /usr/include/alloca.h +src/palette.o: /usr/include/string.h /usr/include/strings.h +src/palette.o: /usr/include/inttypes.h /usr/include/stdint.h +src/palette.o: /usr/include/bits/wchar.h /usr/include/ctype.h +src/palette.o: /usr/include/iconv.h /usr/include/SDL/begin_code.h +src/palette.o: /usr/include/SDL/close_code.h /usr/include/SDL/SDL_audio.h +src/palette.o: /usr/include/SDL/SDL_error.h /usr/include/SDL/SDL_endian.h +src/palette.o: /usr/include/SDL/SDL_mutex.h /usr/include/SDL/SDL_thread.h +src/palette.o: /usr/include/SDL/SDL_rwops.h /usr/include/SDL/SDL_cdrom.h +src/palette.o: /usr/include/SDL/SDL_cpuinfo.h /usr/include/SDL/SDL_events.h +src/palette.o: /usr/include/SDL/SDL_active.h /usr/include/SDL/SDL_keyboard.h +src/palette.o: /usr/include/SDL/SDL_keysym.h /usr/include/SDL/SDL_mouse.h +src/palette.o: /usr/include/SDL/SDL_video.h /usr/include/SDL/SDL_joystick.h +src/palette.o: /usr/include/SDL/SDL_quit.h /usr/include/SDL/SDL_loadso.h +src/palette.o: /usr/include/SDL/SDL_timer.h /usr/include/SDL/SDL_version.h +src/psg.o: src/psg.h +src/synth.o: src/synth.h /usr/include/portaudio.h src/tune.h src/channel.h +src/synth.o: src/psg.h /usr/include/stdio.h /usr/include/features.h +src/synth.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +src/synth.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h +src/synth.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +src/synth.o: /usr/include/libio.h /usr/include/_G_config.h +src/synth.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +src/synth.o: /usr/include/bits/sys_errlist.h /usr/include/string.h +src/synth.o: /usr/include/xlocale.h /usr/include/SDL/SDL.h +src/synth.o: /usr/include/SDL/SDL_main.h /usr/include/SDL/SDL_stdinc.h +src/synth.o: /usr/include/SDL/SDL_config.h /usr/include/SDL/SDL_platform.h +src/synth.o: /usr/include/sys/types.h /usr/include/time.h +src/synth.o: /usr/include/endian.h /usr/include/bits/endian.h +src/synth.o: /usr/include/sys/select.h /usr/include/bits/select.h +src/synth.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +src/synth.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h +src/synth.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h +src/synth.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h +src/synth.o: /usr/include/strings.h /usr/include/inttypes.h +src/synth.o: /usr/include/stdint.h /usr/include/bits/wchar.h +src/synth.o: /usr/include/ctype.h /usr/include/iconv.h +src/synth.o: /usr/include/SDL/begin_code.h /usr/include/SDL/close_code.h +src/synth.o: /usr/include/SDL/SDL_audio.h /usr/include/SDL/SDL_error.h +src/synth.o: /usr/include/SDL/SDL_endian.h /usr/include/SDL/SDL_mutex.h +src/synth.o: /usr/include/SDL/SDL_thread.h /usr/include/SDL/SDL_rwops.h +src/synth.o: /usr/include/SDL/SDL_cdrom.h /usr/include/SDL/SDL_cpuinfo.h +src/synth.o: /usr/include/SDL/SDL_events.h /usr/include/SDL/SDL_active.h +src/synth.o: /usr/include/SDL/SDL_keyboard.h /usr/include/SDL/SDL_keysym.h +src/synth.o: /usr/include/SDL/SDL_mouse.h /usr/include/SDL/SDL_video.h +src/synth.o: /usr/include/SDL/SDL_joystick.h /usr/include/SDL/SDL_quit.h +src/synth.o: /usr/include/SDL/SDL_loadso.h /usr/include/SDL/SDL_timer.h +src/synth.o: /usr/include/SDL/SDL_version.h src/midi.h src/guievents.h +src/tune.o: src/tune.h src/channel.h src/midi.h /usr/include/stdio.h +src/tune.o: /usr/include/features.h /usr/include/sys/cdefs.h +src/tune.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +src/tune.o: /usr/include/gnu/stubs-32.h /usr/include/bits/types.h +src/tune.o: /usr/include/bits/typesizes.h /usr/include/libio.h +src/tune.o: /usr/include/_G_config.h /usr/include/wchar.h +src/tune.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +src/tune.o: /usr/include/string.h /usr/include/xlocale.h diff --git a/tools/tracker/SDL.dll b/tools/tracker/SDL.dll new file mode 100644 index 0000000000000000000000000000000000000000..3ce97a59deb86e64d75443ff5bbf55a697a501ac GIT binary patch literal 321536 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⁡Y_0|PGD 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�<9il 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 BhV%dc literal 0 HcmV?d00001 diff --git a/tools/tracker/TODO b/tools/tracker/TODO new file mode 100644 index 0000000..27fba48 --- /dev/null +++ b/tools/tracker/TODO @@ -0,0 +1,4 @@ +- clean guichannel + - selection multi-channel +- doit y avoir des bugs à corriger... pas facile à traquer... +- GUITime : display correct time (again) \ No newline at end of file diff --git a/tools/tracker/Tracker.exe b/tools/tracker/Tracker.exe new file mode 100644 index 0000000000000000000000000000000000000000..b40ccb035ce3f9bbc3c7ef5d600256f8de3434c9 GIT binary patch literal 45056 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/tracker/data/bg.bmp b/tools/tracker/data/bg.bmp new file mode 100644 index 0000000000000000000000000000000000000000..76423a18327e1bbbbe60e8d1393ef4a9556208bd GIT binary patch literal 921654 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 literal 0 HcmV?d00001 diff --git a/tools/tracker/data/font.bmp b/tools/tracker/data/font.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b1a0a063f15a010213ed30e582b400077b42ab2b GIT binary patch literal 18486 zcmeHJL5>_p3>zbt06ylDC*%cwKu)>%|IcycB|<2qr0%NjncXZ>z!WHoqFB9`{qy^` zzaDSrTik!d@7JHzFOSEU$L~MU;}QMezTyYs|GWAEKi&>H0SCZtWpkAq%)3^{N0hQv zlB?qRol7ga)i2;TUa|DFPQ3B7VT7-Ub$)V}SU^k(!!ozrJa;*=4bJ;>uaCrbc9{fB z$5VC@APh~sjFxAZ$*gz7+~wYF0Drl2Jgx(fl1lPSB6{Ij-UU2BIF}i+l9+&b%2|3+ zb`iuDKjoH?-N;{z?c<1dJMSMy7D>qf9Zvzkp+EI7?DXBbPEXs5VAxwaZ|MCArSo0n zoY2ES?^EP`%UKQtCr9 z@PnI}cV%`UKED(rr9N8VX-m+B+2HA!!JJ37#Ne#Y&cNb;5BZ8xpBbvN1lzAzY;($_=x$N}fPoK;K=bJGIvL1Uy&oJZz z$f3qTD4h&ugO{anaGyiI^eICkXQ|)VD=Q9jcKR}ph*_S@3D20ydf9=_f0!SGd4*3wsDU*W~B}#7b!4Nq40)4r(+>3;s^NDjSwQSPea65ae-U zb{z~pE)HhUb6wVCoDBy)`vB)b!7hd~ZV^X0@Y#xkgPxiUvI%h(2&RSrf+$@X%nNuX z0gxC{ikKq-M2YeRyhkdNFpucT%M_A(e)3QCkuWTWJk$U%XU9waL;aGEh*|p5ZZAgI z&4bY*pPe&b>M8D&n98yaBS6=6zSB$2rNI#Aabh<)!*mI;rE@5!&Xb+(jXXaKz@hW1 z{?KqkaQ*|9N^IO~ok{yVXKo)>Q1c9M*WSB)HryHt=o&y-ywTZdLAOs#1T~ z-n)E;CrHaT@};7D2JauU%fszH5-pzsGw>&UxEDZfH}Q>mdRnPO>XN zl({4ZV98V&&^F6Jk|E$A83MKjL$)%=4&Z~yCyN6|i}$Q|<*a8H;P8gOOy%UnqKUGc kJ;T#8gV`V54|U`D`6J{fI6s765{FNxe>Oin;Ul;H21G21YybcN literal 0 HcmV?d00001 diff --git a/tools/tracker/data/palette.bmp b/tools/tracker/data/palette.bmp new file mode 100644 index 0000000000000000000000000000000000000000..939863e750f42e97ffa83f901d213c8e0c18d3c3 GIT binary patch literal 74314 zcmeI5JB}Si6o%U}nMHue5n>g{Ap!y%9K&zcr%~W5IVn|Mbm^qy72u{(O6Xez-rM-;Z7#Umq{;`_Jz2FJB#>p8G5O zxgEzp|9m?5{)?B#^;{lYci_4M*B!X-z;y?%J8<2B>khyjxZQ5Y>Vcf+w6479&o4jb zcjmeH(%%K@{?Wam`Y_9TRBvXioU=#tg~PwfeKcQIoRafL@kYXq)tucMj87WBe0j{D zXQcN5t2^_3!PqqMv-+Z8#%eE5o_=q+Jh?omBk|O z41P3?7Oa#WXYnJ-lQa1dr9;?0?zF2AZ>=W&aCyQn8NM9^)eA06bBe(V}o`9EJ zK1u%BJc;n;te!M)BzJ&Pb7oKA&h#sVd6(nmN9)_`jNb2tvOS@E2HyOu{uFJQ zIV;_s=b5~e*`DmX-V|+_IXmrMu}og-Y%lg*U#hmuyq$ipSSBxJwih?nm!d5z2h;8u z&tk^rdNO0ZF>P6KOt*JDi+eZMn;GlB)0P#(G)Kg<*k^Mic&RgH`l8RMS|jtKJs9Uj zvT|mPIwRjXI-_$VeduRJb8_ePTBG({jT!k-UbHzGe3F?T-o6R>cexU6SvAcQZ(p+5 zq;tU&SiQcMr1~=Iz>9J9@Fs&#GIR8ze}AsN^d7AC*4{`yyU3cA597I|FOhuQStB>) z-NGBL&Zv9}|1L-4O%x+{&W@K8lX%0`8kNuC#&Ws7L@{#bV4U1I#}}^FsC+InC77+oV}lh#G^N#;q}q;(RF88uQqZe0eObS9Tgk}uVkStsG- z)MT=0W^)+1xf)#+YPr0W{0dwe4HQOhjz&*r?O%WVdcebFrsQX`VY7i7TPd8J986bM z9P?p}bC|K*Eau(Zk(c_8v2x-&eHk&T2eUj5_bxYsdpC2&%01ihQer!O88I&ZDxbo> z%E{o~&0H}`&R5LX`A%O(Ov1ja!T4wK4DQ{`9iJvPV_%)^^ku~~?7P~P2mN^#GiC0M zO%v<+$2~^dv{U7u`5$^0FURZOC*LX8#ws!s(*sfHDk z#ko|IN1X+aRSyq7Zci%~%RXEN%X~`?>t2?e)LzyM*8Qj)mU-3;*8MD5slBWjtou

GgY7<*_nMc2Rk{q@m5 zBah{KG@E2z?*;5FJ(%^9=!~iX55{%IVSN_G$elBK0q@rQtA1R)5&7W3xULwi&m$PQ zGe$4^cWeGxKd#=0{N97ve#T*W7Qx7!G4o+|X6ZxUi>o&xf5yK%>v=5p5sZ=7DIEKcA!9E4SBEVQ+Wbm)1hibf)VwPd?@NWdQq7kvPyYPnt7ClNYdU+)@MQF&f6w-#&5!n^=U?r! zeW~b4^D5Jqs-D0d%J8PTC((B%+K)C5K7Z~SbzjcpNyL50@I!M?;9hy%mn=VEF7Rnq zt~W5d@~ZIzYN@_d_F>cpY?>AGrS%@?R)5#{!Ktn8!%QECPntWMTm4MR%BidF!Au{A zPntWMTlq}NDXGiwfvR)VMy<2R8)tjIOZ0*sNv);^=6bFgeXX`>)Ar!hdwK!AIeIGO zf^N^X0w+gCsl)|4}EW{p6t9{v-dum z6`SwPKkJWasuG`R_d2V>Owr-x!K^PuPnDdRey_7C%$N=@{#9R0PlfnOd&GGK{+Wgd zc5KE>SLPX}H!_~-Lq9u`nL4Z2m$9en%*ea^c=_+|EPs3b>gbw(o%;$Gfh+E;Ok z=9Z(a$L4tWveJy5V_GBQ*1llut9T?cb(WPkD`xDRsxu=`>kY=fif6D&XL3DSF=OXa zeVKI>Z!qp%Jd;f`d*{oJmlD(H%B-cZNpmu}G_$3=lsb*B3bhnQNlpbetp*7o=4q%0nF(d?^v9&Fm4E3HxITK(SjQ9i&NZywA3pxJY^)En8$(vwKt z5wk43iO`ubL*q?`-pH9;Zz8p2&!Tvft?`=w-{0T6ytur0u6Lk)uWG+bZ2yg(_W#BD V@b=B|@%_8wcDpVAuFV5`^*6Nq$}|7~ literal 0 HcmV?d00001 diff --git a/tools/tracker/packages/portaudio/COMPILING.DARWIN b/tools/tracker/packages/portaudio/COMPILING.DARWIN new file mode 100644 index 0000000..6d7aa87 --- /dev/null +++ b/tools/tracker/packages/portaudio/COMPILING.DARWIN @@ -0,0 +1 @@ +To compile on darwin, you will need to use the darwin makefile, gcc 3.3 or later and the universal SDK. for more info, see http://portaudio.com/trac/wiki/TutorialDir/Compile/MacintoshCoreAudio diff --git a/tools/tracker/packages/portaudio/Doxyfile b/tools/tracker/packages/portaudio/Doxyfile new file mode 100644 index 0000000..7dbfdfe --- /dev/null +++ b/tools/tracker/packages/portaudio/Doxyfile @@ -0,0 +1,239 @@ +# Doxyfile 1.4.6 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = PortAudio +PROJECT_NUMBER = 2.0 +OUTPUT_DIRECTORY = ./doc/ +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = doc/src \ + src \ + include \ + test +FILE_PATTERNS = *.h \ + *.c \ + *.cpp \ + *.dox +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = NO +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/tools/tracker/packages/portaudio/LICENSE.txt b/tools/tracker/packages/portaudio/LICENSE.txt new file mode 100644 index 0000000..e0ac4e8 --- /dev/null +++ b/tools/tracker/packages/portaudio/LICENSE.txt @@ -0,0 +1,81 @@ +Portable header file to contain: +>>>>> +/* + * PortAudio Portable Real-Time Audio Library + * PortAudio API Header File + * Latest version available at: http://www.portaudio.com + * + * Copyright (c) 1999-2006 Ross Bencina and Phil Burk + * + * 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * The text above constitutes the entire PortAudio license; however, + * the PortAudio community also makes the following non-binding requests: + * + * Any person wishing to distribute modifications to the Software is + * requested to send the modifications to the original developer so that + * they can be incorporated into the canonical version. It is also + * requested that these non-binding requests be included along with the + * license above. + */ +<<<<< + + +Implementation files to contain: +>>>>> +/* + * PortAudio Portable Real-Time Audio Library + * Latest version at: http://www.portaudio.com + * Implementation + * Copyright (c) 1999-2000 + * + * 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * The text above constitutes the entire PortAudio license; however, + * the PortAudio community also makes the following non-binding requests: + * + * Any person wishing to distribute modifications to the Software is + * requested to send the modifications to the original developer so that + * they can be incorporated into the canonical version. It is also + * requested that these non-binding requests be included along with the + * license above. + */ +<<<<< \ No newline at end of file diff --git a/tools/tracker/packages/portaudio/Makefile.in b/tools/tracker/packages/portaudio/Makefile.in new file mode 100644 index 0000000..3369cbf --- /dev/null +++ b/tools/tracker/packages/portaudio/Makefile.in @@ -0,0 +1,212 @@ +# +# PortAudio V19 Makefile.in +# +# Dominic Mazzoni +# Modifications by Mikael Magnusson +# + +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +top_builddir = . +PREFIX = @prefix@ +prefix = $(PREFIX) +exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +CC = @CC@ +CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src/common -I$(top_srcdir)/src/os/unix @CFLAGS@ @DEFS@ +LIBS = @LIBS@ +AR = @AR@ +RANLIB = @RANLIB@ +LIBTOOL = @LIBTOOL@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +SHARED_FLAGS = @SHARED_FLAGS@ +LDFLAGS = @LDFLAGS@ +DLL_LIBS = @DLL_LIBS@ +CXXFLAGS = @CXXFLAGS@ +NASM = @NASM@ +NASMOPT = @NASMOPT@ +LN_S = @LN_S@ +LT_RELEASE=@LT_RELEASE@ +LT_CURRENT=@LT_CURRENT@ +LT_REVISION=@LT_REVISION@ +LT_AGE=@LT_AGE@ + +OTHER_OBJS = @OTHER_OBJS@ + +PALIB = libportaudio.la +PAINC = include/portaudio.h + +PA_LDFLAGS = $(LDFLAGS) $(SHARED_FLAGS) -rpath $(libdir) -no-undefined -export-symbols-regex "(Pa|PaMacCore)_.*" -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) +#MAKEFILE = Makefile + +COMMON_OBJS = \ + src/common/pa_allocation.o \ + src/common/pa_converters.o \ + src/common/pa_cpuload.o \ + src/common/pa_dither.o \ + src/common/pa_debugprint.o \ + src/common/pa_front.o \ + src/common/pa_process.o \ + src/common/pa_skeleton.o \ + src/common/pa_stream.o \ + src/common/pa_trace.o + +TESTS = \ + bin/paqa_devs \ + bin/paqa_errs \ + bin/patest1 \ + bin/patest_buffer \ + bin/patest_callbackstop \ + bin/patest_clip \ + bin/patest_dither \ + bin/patest_hang \ + bin/patest_in_overflow \ + bin/patest_latency \ + bin/patest_leftright \ + bin/patest_longsine \ + bin/patest_many \ + bin/patest_maxsines \ + bin/patest_multi_sine \ + bin/patest_out_underflow \ + bin/patest_pink \ + bin/patest_prime \ + bin/patest_read_record \ + bin/patest_read_write_wire \ + bin/patest_record \ + bin/patest_ringmix \ + bin/patest_saw \ + bin/patest_sine8 \ + bin/patest_sine \ + bin/patest_sine_channelmaps \ + bin/patest_sine_formats \ + bin/patest_sine_time \ + bin/patest_start_stop \ + bin/patest_stop \ + bin/patest_stop_playout \ + bin/patest_toomanysines \ + bin/patest_underflow \ + bin/patest_wire \ + bin/patest_write_sine \ + bin/pa_devs \ + bin/pa_fuzz \ + bin/pa_minlat + +# Most of these don't compile yet. Put them in TESTS, above, if +# you want to try to compile them... +ALL_TESTS = \ + $(TESTS) \ + bin/patest_sync \ + bin/debug_convert \ + bin/debug_dither_calc \ + bin/debug_dual \ + bin/debug_multi_in \ + bin/debug_multi_out \ + bin/debug_record \ + bin/debug_record_reuse \ + bin/debug_sine_amp \ + bin/debug_sine \ + bin/debug_sine_formats \ + bin/debug_srate \ + bin/debug_test1 + +OBJS = $(COMMON_OBJS) $(OTHER_OBJS) + +LTOBJS:= $(OBJS:.o=.lo) + +SUBDIRS = +@ENABLE_CXX_TRUE@SUBDIRS += bindings/cpp + +all: lib/$(PALIB) all-recursive tests + +tests: bin-stamp $(TESTS) + + +lib/$(PALIB): lib-stamp $(LTOBJS) $(MAKEFILE) $(PAINC) + $(LIBTOOL) --mode=link $(CC) $(PA_LDFLAGS) -o lib/$(PALIB) $(LTOBJS) $(DLL_LIBS) + +$(ALL_TESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) test/%.c + $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS) + + +install: lib/$(PALIB) portaudio-2.0.pc + $(INSTALL) -d $(DESTDIR)$(libdir) + $(LIBTOOL) --mode=install $(INSTALL) lib/$(PALIB) $(DESTDIR)$(libdir) + $(INSTALL) -d $(DESTDIR)$(includedir) + $(INSTALL_DATA) -m 644 $(top_srcdir)/$(PAINC) $(DESTDIR)$(includedir)/portaudio.h + $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig + $(INSTALL) -m 644 portaudio-2.0.pc $(DESTDIR)$(libdir)/pkgconfig/portaudio-2.0.pc + @echo "" + @echo "------------------------------------------------------------" + @echo "PortAudio was successfully installed." + @echo "" + @echo "On some systems (e.g. Linux) you should run 'ldconfig' now" + @echo "to make the shared object available. You may also need to" + @echo "modify your LD_LIBRARY_PATH environment variable to include" + @echo "the directory $(libdir)" + @echo "------------------------------------------------------------" + @echo "" + $(MAKE) install-recursive + +uninstall: + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(PALIB) + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(includedir)/portaudio.h + $(MAKE) uninstall-recursive + +clean: + $(LIBTOOL) --mode=clean rm -f $(LTOBJS) $(ALL_TESTS) lib/$(PALIB) + rm -f bin-stamp lib-stamp + -rm -rf bin lib + +distclean: clean + rm -f config.log config.status Makefile libtool portaudio-2.0.pc + +%.o: %.c $(MAKEFILE) $(PAINC) + $(CC) -c $(CFLAGS) $< -o $@ + +%.lo: %.c $(MAKEFILE) $(PAINC) + $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@ + +%.o: %.cpp $(MAKEFILE) $(PAINC) + $(CXX) -c $(CXXFLAGS) $< -o $@ + +%.o: %.asm + $(NASM) $(NASMOPT) -o $@ $< + +bin-stamp: + -mkdir bin + touch $@ + +lib-stamp: + -mkdir lib + -mkdir -p \ + src/common \ + src/hostapi/alsa \ + src/hostapi/asihpi \ + src/hostapi/asio \ + src/hostapi/coreaudio \ + src/hostapi/dsound \ + src/hostapi/jack \ + src/hostapi/oss \ + src/hostapi/wasapi \ + src/hostapi/wdmks \ + src/hostapi/wmme \ + src/os/mac_osx \ + src/os/unix \ + src/os/win + touch $@ + +Makefile: Makefile.in config.status + $(SHELL) config.status + +all-recursive: + for dir in $(SUBDIRS); do make -C $$dir all; done + +install-recursive: + for dir in $(SUBDIRS); do make -C $$dir install; done + +uninstall-recursive: + for dir in $(SUBDIRS); do make -C $$dir uninstall; done diff --git a/tools/tracker/packages/portaudio/README.txt b/tools/tracker/packages/portaudio/README.txt new file mode 100644 index 0000000..2d7877f --- /dev/null +++ b/tools/tracker/packages/portaudio/README.txt @@ -0,0 +1,96 @@ +README for PortAudio + +/* + * PortAudio Portable Real-Time Audio Library + * Latest Version at: http://www.portaudio.com + * + * Copyright (c) 1999-2006 Phil Burk and Ross Bencina + * + * 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * The text above constitutes the entire PortAudio license; however, + * the PortAudio community also makes the following non-binding requests: + * + * Any person wishing to distribute modifications to the Software is + * requested to send the modifications to the original developer so that + * they can be incorporated into the canonical version. It is also + * requested that these non-binding requests be included along with the + * license above. + */ + + +PortAudio is a portable audio I/O library designed for cross-platform +support of audio. It uses either a callback mechanism to request audio +processing, or blocking read/write calls to buffer data between the +native audio subsystem and the client. Audio can be processed in various +formats, including 32 bit floating point, and will be converted to the +native format internally. + +Documentation: + Documentation is available in "/doc/html/index.html" + Also see "src/common/portaudio.h" for API spec. + Also see http://www.portaudio.com/docs/ + And see "tests/patest_saw.c" for an example. + +For information on compiling programs with PortAudio, please see the +tutorial at: + + http://portaudio.com/trac/wiki/TutorialDir/TutorialStart + + +Important Files and Folders: + include/portaudio.h = header file for PortAudio API. Specifies API. + src/common/ = platform independant code, host independant + code for all implementations. + src/os = os specific (but host api neutral) code + src/hostapi = implementations for different host apis + + pablio = simple blocking read/write interface + + +Host API Implementations: + src/hostapi/alsa = Advanced Linux Sound Architecture (ALSA) + src/hostapi/asihpi = AudioScience HPI + src/hostapi/asio = ASIO for Windows and Macintosh + src/hostapi/coreaudio = Macintosh Core Audio for OS X + src/hostapi/dsound = Windows Direct Sound + src/hostapi/jack = JACK Audio Connection Kit + src/hostapi/oss = Unix Open Sound System (OSS) + src/hostapi/wasapi = Windows Vista WASAPI + src/hostapi/wdmks = Windows WDM Kernel Streaming + src/hostapi/wmme = Windows MME (most widely supported) + + +Test Programs: + tests/pa_fuzz.c = guitar fuzz box + tests/pa_devs.c = print a list of available devices + tests/pa_minlat.c = determine minimum latency for your machine + tests/paqa_devs.c = self test that opens all devices + tests/paqa_errs.c = test error detection and reporting + tests/patest_clip.c = hear a sine wave clipped and unclipped + tests/patest_dither.c = hear effects of dithering (extremely subtle) + tests/patest_pink.c = fun with pink noise + tests/patest_record.c = record and playback some audio + tests/patest_maxsines.c = how many sine waves can we play? Tests Pa_GetCPULoad(). + tests/patest_sine.c = output a sine wave in a simple PA app + tests/patest_sync.c = test syncronization of audio and video + tests/patest_wire.c = pass input to output, wire simulator diff --git a/tools/tracker/packages/portaudio/SConstruct b/tools/tracker/packages/portaudio/SConstruct new file mode 100644 index 0000000..15d36ba --- /dev/null +++ b/tools/tracker/packages/portaudio/SConstruct @@ -0,0 +1,194 @@ +import sys, os.path + +def rsplit(toSplit, sub, max=-1): + """ str.rsplit seems to have been introduced in 2.4 :( """ + l = [] + i = 0 + while i != max: + try: idx = toSplit.rindex(sub) + except ValueError: break + + toSplit, splitOff = toSplit[:idx], toSplit[idx + len(sub):] + l.insert(0, splitOff) + i += 1 + + l.insert(0, toSplit) + return l + +sconsDir = os.path.join("build", "scons") +SConscript(os.path.join(sconsDir, "SConscript_common")) +Import("Platform", "Posix", "ApiVer") + +# SConscript_opts exports PortAudio options +optsDict = SConscript(os.path.join(sconsDir, "SConscript_opts")) +optionsCache = os.path.join(sconsDir, "options.cache") # Save options between runs in this cache +options = Options(optionsCache, args=ARGUMENTS) +for k in ("Installation Dirs", "Build Targets", "Host APIs", "Build Parameters", "Bindings"): + options.AddOptions(*optsDict[k]) +# Propagate options into environment +env = Environment(options=options) +# Save options for next run +options.Save(optionsCache, env) +# Generate help text for options +env.Help(options.GenerateHelpText(env)) + +buildDir = os.path.join("#", sconsDir, env["PLATFORM"]) + +# Determine parameters to build tools +if Platform in Posix: + baseLinkFlags = threadCFlags = "-pthread" + baseCxxFlags = baseCFlags = "-Wall -pedantic -pipe " + threadCFlags + debugCxxFlags = debugCFlags = "-g" + optCxxFlags = optCFlags = "-O2" +env["CCFLAGS"] = baseCFlags.split() +env["CXXFLAGS"] = baseCxxFlags.split() +env["LINKFLAGS"] = baseLinkFlags.split() +if env["enableDebug"]: + env.AppendUnique(CCFLAGS=debugCFlags.split()) + env.AppendUnique(CXXFLAGS=debugCxxFlags.split()) +if env["enableOptimize"]: + env.AppendUnique(CCFLAGS=optCFlags.split()) + env.AppendUnique(CXXFLAGS=optCxxFlags.split()) +if not env["enableAsserts"]: + env.AppendUnique(CPPDEFINES=["-DNDEBUG"]) +if env["customCFlags"]: + env.Append(CCFLAGS=Split(env["customCFlags"])) +if env["customCxxFlags"]: + env.Append(CXXFLAGS=Split(env["customCxxFlags"])) +if env["customLinkFlags"]: + env.Append(LINKFLAGS=Split(env["customLinkFlags"])) + +env.Append(CPPPATH=[os.path.join("#", "include"), "common"]) + +# Store all signatures in one file, otherwise .sconsign files will get installed along with our own files +env.SConsignFile(os.path.join(sconsDir, ".sconsign")) + +env.SConscriptChdir(False) +sources, sharedLib, staticLib, tests, portEnv, hostApis = env.SConscript(os.path.join("src", "SConscript"), + build_dir=buildDir, duplicate=False, exports=["env"]) + +if Platform in Posix: + prefix = env["prefix"] + includeDir = os.path.join(prefix, "include") + libDir = os.path.join(prefix, "lib") + env.Alias("install", includeDir) + env.Alias("install", libDir) + + # pkg-config + + def installPkgconfig(env, target, source): + tgt = str(target[0]) + src = str(source[0]) + f = open(src) + try: txt = f.read() + finally: f.close() + txt = txt.replace("@prefix@", prefix) + txt = txt.replace("@exec_prefix@", prefix) + txt = txt.replace("@libdir@", libDir) + txt = txt.replace("@includedir@", includeDir) + txt = txt.replace("@LIBS@", " ".join(["-l%s" % l for l in portEnv["LIBS"]])) + txt = txt.replace("@THREAD_CFLAGS@", threadCFlags) + + f = open(tgt, "w") + try: f.write(txt) + finally: f.close() + + pkgconfigTgt = "portaudio-%d.0.pc" % int(ApiVer.split(".", 1)[0]) + env.Command(os.path.join(libDir, "pkgconfig", pkgconfigTgt), + os.path.join("#", pkgconfigTgt + ".in"), installPkgconfig) + +# Default to None, since if the user disables all targets and no Default is set, all targets +# are built by default +env.Default(None) +if env["enableTests"]: + env.Default(tests) +if env["enableShared"]: + env.Default(sharedLib) + + if Platform in Posix: + def symlink(env, target, source): + trgt = str(target[0]) + src = str(source[0]) + + if os.path.islink(trgt) or os.path.exists(trgt): + os.remove(trgt) + os.symlink(os.path.basename(src), trgt) + + major, minor, micro = [int(c) for c in ApiVer.split(".")] + + soFile = "%s.%s" % (os.path.basename(str(sharedLib[0])), ApiVer) + env.InstallAs(target=os.path.join(libDir, soFile), source=sharedLib) + # Install symlinks + symTrgt = os.path.join(libDir, soFile) + env.Command(os.path.join(libDir, "libportaudio.so.%d.%d" % (major, minor)), + symTrgt, symlink) + symTrgt = rsplit(symTrgt, ".", 1)[0] + env.Command(os.path.join(libDir, "libportaudio.so.%d" % major), symTrgt, symlink) + symTrgt = rsplit(symTrgt, ".", 1)[0] + env.Command(os.path.join(libDir, "libportaudio.so"), symTrgt, symlink) + +if env["enableStatic"]: + env.Default(staticLib) + env.Install(libDir, staticLib) + +env.Install(includeDir, os.path.join("include", "portaudio.h")) + + +if env["enableCxx"]: + env.SConscriptChdir(True) + cxxEnv = env.Copy() + sharedLibs, staticLibs, headers = env.SConscript(os.path.join("bindings", "cpp", "SConscript"), + exports={"env": cxxEnv, "buildDir": buildDir}, build_dir=os.path.join(buildDir, "portaudiocpp"), duplicate=False) + if env["enableStatic"]: + env.Default(staticLibs) + env.Install(libDir, staticLibs) + if env["enableShared"]: + env.Default(sharedLibs) + env.Install(libDir, sharedLibs) + env.Install(os.path.join(includeDir, "portaudiocpp"), headers) + +# Generate portaudio_config.h header with compile-time definitions of which PA +# back-ends are available, and which includes back-end extension headers + +# Host-specific headers +hostApiHeaders = {"ALSA": "pa_linux_alsa.h", + "ASIO": "pa_asio.h", + "COREAUDIO": "pa_mac_core.h", + "JACK": "pa_jack.h", + "WMME": "pa_winwmme.h", + } + +def buildConfigH(target, source, env): + """builder for portaudio_config.h""" + global hostApiHeaders, hostApis + out = "" + for hostApi in hostApis: + out += "#define PA_HAVE_%s\n" % hostApi + + hostApiSpecificHeader = hostApiHeaders.get(hostApi, None) + if hostApiSpecificHeader: + out += "#include \"%s\"\n" % hostApiSpecificHeader + + out += "\n" + # Strip the last newline + if out[-1] == "\n": + out = out[:-1] + + f = file(str(target[0]), 'w') + try: f.write(out) + finally: f.close() + return 0 + +# Define the builder for the config header +env.Append(BUILDERS={"portaudioConfig": env.Builder(action=Action(buildConfigH, + "generating '$TARGET'"), target_factory=env.fs.File,)}) + +confH = env.portaudioConfig(File("portaudio_config.h", "include"), + File("portaudio.h", "include")) +env.Default(confH) +env.Install(os.path.join(includeDir, "portaudio"), confH) + +for api in hostApis: + if api in hostApiHeaders: + env.Install(os.path.join(includeDir, "portaudio"), + File(hostApiHeaders[api], "include")) diff --git a/tools/tracker/packages/portaudio/V19-devel-readme.txt b/tools/tracker/packages/portaudio/V19-devel-readme.txt new file mode 100644 index 0000000..ad5e137 --- /dev/null +++ b/tools/tracker/packages/portaudio/V19-devel-readme.txt @@ -0,0 +1,129 @@ +/* + This file was a scribble area during the early phases of development. + + It's out of date but will probably hang around untill all the content + has been cleaned out or found a new home. + + Here's some tasks to undertake: + o- make sure that the @brief comments in each file are at least + as good as the file descriptions below, then delete the file + descriptions below. + + o- make sure that the coding guidelines below appear in the + pa_proposals style guide, then delete from below. + + o- verify and move the TODO items into TRAC +*/ + + +FILES: + +portaudio.h + public api header file + +pa_front.c + implements the interface defined in portaudio.h. manages multiple host apis. + validates function parameters before calling through to host apis. tracks + open streams and closes them at Pa_Terminate(). + +pa_util.h + declares utility functions for use my implementations. including utility + functions which must be implemented separately for each platform. + +pa_hostapi.h + hostapi representation structure used to interface between pa_front.c + and implementations + +pa_stream.c/h + stream interface and representation structures and helper functions + used to interface between pa_front.c and implementations + +pa_cpuload.c/h + source and header for cpu load calculation facility + +pa_trace.c/h + source and header for debug trace log facility + +pa_converters.c/h + sample buffer conversion facility + +pa_dither.c/h + dither noise generator + +pa_process.c/h + callback buffer processing facility including interleave and block adaption + +pa_allocation.c/h + allocation context for tracking groups of allocations + +pa_skeleton.c + an skeleton implementation showing how the common code can be used. + +pa_win_util.c + Win32 implementation of platform specific PaUtil functions (memory allocation, + usec clock, Pa_Sleep().) The file will be used with all Win32 host APIs. + +pa_win_hostapis.c + contains the paHostApiInitializers array and an implementation of + Pa_GetDefaultHostApi() for win32 builds. + +pa_win_wmme.c + Win32 host api implementation for the windows multimedia extensions audio API. + +pa_win_wmme.h + public header file containing interfaces to mme-specific functions and the + deviceInfo data structure. + + +CODING GUIDELINES: + +naming conventions: + #defines begin with PA_ + #defines local to a file end with _ + global utility variables begin with paUtil + global utility types begin with PaUtil (including function types) + global utility functions begin with PaUtil_ + static variables end with _ + static constants begin with const and end with _ + static funtions have no special prefix/suffix + +In general, implementations should declare all of their members static, +except for their initializer which should be exported. All exported names +should be preceeded by Pa_ where MN is the module name, for example +the windows mme initializer should be named PaWinWmme_Initialize(). + +Every host api should define an initializer which returns an error code +and a PaHostApiInterface*. The initializer should only return an error other +than paNoError if it encounters an unexpected and fatal error (memory allocation +error for example). In general, there may be conditions under which it returns +a NULL interface pointer and also returns paNoError. For example, if the ASIO +implementation detects that ASIO is not installed, it should return a +NULL interface, and paNoError. + +Platform-specific shared functions should begin with Pa_ where PN is the +platform name. eg. PaWin_ for windows, PaUnix_ for unix. + +The above two conventions should also be followed whenever it is necessary to +share functions accross multiple source files. + +Two utilities for debug messages are provided. The PA_DEBUG macro defined in +pa_implementation.h provides a simple way to print debug messages to stderr. +Due to real-time performance issues, PA_DEBUG may not be suitable for use +within the portaudio processing callback, or in other threads. In such cases +the event tracing facility provided in pa_trace.h may be more appropriate. + +If PA_LOG_API_CALLS is defined, all calls to the public PortAudio API +will be logged to stderr along with parameter and return values. + + +TODO: (these need to be turned into TRAC items) + write some new tests to exercise the multi-host-api functions + + write (doxygen) documentation for pa_trace (phil?) + + create a global configuration file which documents which PA_ defines can be + used for configuration + + need a coding standard for comment formatting + + write style guide document (ross) diff --git a/tools/tracker/packages/portaudio/aclocal.m4 b/tools/tracker/packages/portaudio/aclocal.m4 new file mode 100644 index 0000000..9e5b4fd --- /dev/null +++ b/tools/tracker/packages/portaudio/aclocal.m4 @@ -0,0 +1,6627 @@ +# aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*- + +# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# 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. + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + +# serial 48 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] + +# Same as above, but do not quote variable references. +[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Check if we have a version mismatch between libtool.m4 and ltmain.sh. +# +# Note: This should be in AC_LIBTOOL_SETUP, _after_ $ltmain have been defined. +# We also should do it _before_ AC_LIBTOOL_LANG_C_CONFIG that actually +# calls AC_LIBTOOL_CONFIG and creates libtool. +# +_LT_VERSION_CHECK + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_VERSION_CHECK +# ----------------- +AC_DEFUN([_LT_VERSION_CHECK], +[AC_MSG_CHECKING([for correct ltmain.sh version]) +if test "x$ltmain" = "x" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + +*** @<:@Gentoo@:>@ sanity check failed! *** +*** \$ltmain is not defined, please check the patch for consistency! *** +]) +fi +gentoo_lt_version="1.5.22" +gentoo_ltmain_version=`sed -n '/^[[ ]]*VERSION=/{s/^[[ ]]*VERSION=//;p;q;}' "$ltmain"` +if test "x$gentoo_lt_version" != "x$gentoo_ltmain_version" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + +*** @<:@Gentoo@:>@ sanity check failed! *** +*** libtool.m4 and ltmain.sh have a version mismatch! *** +*** (libtool.m4 = $gentoo_lt_version, ltmain.sh = $gentoo_ltmain_version) *** + +Please run: + + libtoolize --copy --force + +if appropriate, please contact the maintainer of this +package (or your distribution) for help. +]) +else + AC_MSG_RESULT(yes) +fi +])# _LT_VERSION_CHECK + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +AC_DEFUN([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +AC_DEFUN([_LT_COMPILER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +AC_DEFUN([_LT_LINKER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$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 conftest* +])# _LT_LINKER_BOILERPLATE + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + # 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. + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# ------------------ +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# --------------------------------------------------------------------- +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ---------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [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="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + 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 +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + linux*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ +cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +$echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + else + $archive_expsym_cmds="$archive_cmds" + fi + else + ld_shlibs=no + fi + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-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='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + + 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 + ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; + 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 + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-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='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 DLLs +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +# set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# it is assumed to be `libltdl'. LIBLTDL will be prefixed with +# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' +# (note the single quotes!). If your package is not flat and you're not +# using automake, define top_builddir and top_srcdir appropriately in +# the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# and an installed libltdl is not found, it is assumed to be `libltdl'. +# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# ------------------ +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# ------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF + +# Report which library types will actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +_LT_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + 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 + 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]].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + ;; + *) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. We must also pass each convience library through + # to the system linker between allextract/defaultextract. + # The C++ compiler will combine linker options so we + # cannot just pass the convience library names through + # without $wl. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # 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. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + _LT_CC_BASENAME([$compiler]) + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + 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 + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|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 + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + *) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +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_MSG_RESULT([$SED]) +]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant . +# +# 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)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +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. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure 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_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi +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 + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[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 +])], + [$4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[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 .])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/AUTHORS b/tools/tracker/packages/portaudio/bindings/cpp/AUTHORS new file mode 100644 index 0000000..e69de29 diff --git a/tools/tracker/packages/portaudio/bindings/cpp/COPYING b/tools/tracker/packages/portaudio/bindings/cpp/COPYING new file mode 100644 index 0000000..c1c60a0 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/COPYING @@ -0,0 +1,31 @@ +PortAudio Portable Real-Time Audio Library +Copyright (c) 1999-2006 Ross Bencina and Phil Burk + +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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +The text above constitutes the entire PortAudio license; however, +the PortAudio community also makes the following non-binding requests: + +Any person wishing to distribute modifications to the Software is +requested to send the modifications to the original developer so that +they can be incorporated into the canonical version. It is also +requested that these non-binding requests be included along with the +license above. diff --git a/tools/tracker/packages/portaudio/bindings/cpp/ChangeLog b/tools/tracker/packages/portaudio/bindings/cpp/ChangeLog new file mode 100644 index 0000000..6b0b027 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/ChangeLog @@ -0,0 +1,178 @@ +Note: Because PortAudioCpp is now in the main PortAudio SVN repository, having these per-release changelogs probably doesn't make much sense anymore. Perhaps it's better to just note mayor changes by date from now on. + +PortAudioCpp v19 revision 16 06/05/22: + + mblaauw: + - Added up-to-date MSVC 6.0 projects created by David Moore. Besides MSVC 6.0 users, MSVC 7.0 users may use these projects and automatically convert them to MSVC 7.0 projects. + - Changed the code and projects (MSVC 7.1 only) to be up-to-date with PortAudio's new directory structure. + - Added equivalents of the PaAsio_GetInputChannelName() and PaAsio_GetOutputChannelName() functions to the AsioDeviceAdapter wrapper-class (missing functions pointed out by David Moore). + - Added code to PortAudio's main SVN repository. + +PortAudioCpp v19 revision 15 (unknown release date): + + mblaauw: + - Changed some exception handling code in HostApi's constructor. + - Added accessors to PortAudio PaStream from PortAudioCpp Stream (their absense being pointed out + by Tom Jordan). + - Fixed a bug/typo in MemFunToCallbackInterfaceAdapter::init() thanks to Fredrik Viklund. + - Fixed issue with concrete Stream classes possibly throwing an exception and fixed documentation w.r.t. this. + - Moved files to portaudio/binding/cpp/. Made new msvc 7.1 projects to reflect the change and removed msvc 6.0 + and 7.0 projects (because I can no longer maintain them myself). Gnu projects will probably need updating. + +PortAudioCpp v19 revision 14 03/10/24: + + mblaauw: + - Fixed some error handling bugs in Stream and System (pointed out by Tom Jordan). + - Updated documentation a little (main page). + - Fixed order of members so initializer list was in the right order in + StreamParameters (pointed out by Ludwig Schwardt). + - Added new lines at EOF's (as indicated by Ludwig Schwardt). + +PortAudioCpp v19 revision 13 03/10/19: + + lschwardt: + - Added build files for GNU/Linux. + - Fixed bug in Exception where the inherited what() member function (and destructor) had looser + exception specification (namely no exception specification, i.e. could throw anything) than + the std::exception base class's what() member function (which had throw(), i.e. no-throw guarantee). + - Changed the iterators so that they have a set of public typedefs instead of deriving the C++ standard + library std::iterator<> struct. G++ 2.95 doesn't support std::exception<> and composition-by-aggregation + is prefered over composition-by-inheritance in this case. + - Changed some minor things to avoid G++ warning messages. + + mblaauw: + - Renamed this file (/WHATSNEW.txt) to /CHANGELOG. + - Renamed /PA_ISSUES.txt to /PA_ISSUES. + - Added /INSTALL file with some build info for GNU/Linux and VC6. + - Added MSVC 6.0 projects for building PortAudioCpp as a staticly or dynamically linkable library. + - Moved build files to /build/(gnu/ or vc6/). + - Moved Doxygen configuration files to /doc/ and output to /doc/api_reference/. + - Added a /doc/README with some info how to generate Doxygen documentation. + +PortAudioCpp v19 revision 12 03/09/02: + + mblaauw: + - Updated code to reflect changes on V19-devel CVS branch. + - Fixed some typos in the documentation. + +PortAudioCpp v19 revision 11 03/07/31: + + mblaauw: + - Renamed SingleDirecionStreamParameters to DirectionSpecificStreamParameters. + - Implemented BlockingStream. + - Updated code to reflect recent changes to PortAudio V19-devel. + - Fixed a potential memory leak when an exception was thrown in the HostApi + constructor. + - Renamed ``Latency'' to ``BufferSize'' in AsioDeviceAdapter. + - Updated class documentation. + +PortAudioCpp v19 revision 10 03/07/18: + + mblaauw: + - SingleDirectionStreamParameters now has a (static) null() method. + - StreamParameters uses references for the direction-specific stream parameters + instead of pointers (use null() method (above) instead of NULL). + - StreamParameters and SingleDirectionStreamParameters must now be fully specified + and now default values are used (because this was not very useful in general and + only made things more complex). + - Updated documentation. + +PortAudioCpp v19 revision 09 03/06/25: + + mblaauw: + - Changed some things in SingleDirectionStreamParameters to ease it's usage. + - Placed all SingleDirectionStreamParameters stuff into a separate file. + + Totally redid the callback stuff, now it's less ackward and supports C++ functions. + +PortAudioCpp v19 revision 08 03/06/20: + + mblaauw: + - Made deconstructors for Device and HostApi private. + + Added a AsioDeviceWrapper host api specific device extension class. + - Refactored Exception into a Exception base class and PaException and PaCppException + derived classes. + - Added ASIO specific device info to the devs.cxx example. + - Fixed a bug in System::hostApiCount() and System::defaultHostApi(). + + Moved Device::null to System::nullDevice. + - Fixed some bugs in Device and System. + +PortAudioCpp v19 revision 07 03/06/08: + + mblaauw: + - Updated some doxy comments. + + Renamed CbXyz to CallbackXyz. + + Renamed all ``configurations'' to ``parameters''. + + Renamed HalfDuplexStreamConfiguration to SingleDirectionStreamConfiguration. + - Renamed SingleDirectionStreamParameters::streamParameters() to + SingleDirectionStreamParameters::paSteamParameters. + - Added a non-constant version of SingleDirectionStreamParameters::paStreamParameters(). + - A few improvements to SingleDirectionStreamParameters. + - Allowed AutoSystem to be created without initializing the System singleton + (using a ctor flag). + - Added a BlockingStream class (not implemented for now). + - Fixed many bugs in the implementation of the iterators. + - Fixed a bug in Device::operator==(). + + Added a C++ version of the patest_sine.c test/example. + - Added a ctor for StreamParameters for a default half-duplex stream. + - Added SingleDirectionStreamParameters::setDevice() and setNumChannels(). + - Renamed System::numHostApis() to System::hostApiCount(). + + Rewrote the iterators and related classes. They are now fully STL compliant. The System now + has a static array of all HostApis and all Devices. Only the System can create HostApis and + Devices and they are non-copyable now. All HostApis and Devices are now passed by-reference. + - Renamed (System::) getVersion() to version() and getVersionText() to versionText(). + - Renamed (Device::) numXyzChannels() to maxXyzChannels(). + - Changed some stuff in StreamParameters. + + Added a C++ version of the patest_devs.c test/example. + +PortAudioCpp v19 revision 06 03/06/04: + + mblaauw: + + Added this file to the project (roughly, a `+' denotes a major change, a `-' a minor change). + - Added System::deviceByIndex(), useful when a Device's index is stored for instance. + - Renamed System::hostApiFromTypeId() to System::hostApiByTypeId(). + - Updated and added some Doxygen documentation. + - Made Stream::usedIntputLatency(), Stream::usedOutputLatency() and + Stream::usedSampleRate() throw an paInternalError equivalent exception instead of paBadStreamPtr. + - Changed exception handling in Stream::open() functions. They now follow the PA error handling + mechanism better and a couple of bugs regarding ownership of objects were fixed. + - Renamed Device::isDefaultXyzDevice() to Device::isSystemDefaultXyzDevice(). + - Added Device::isHostApiDefaultXyzDevice(). + - Added StreamConfiguration::unsetFlag(). + - Removed CUSTOM from SampleDataFormat. + - System::hostApiByTypeId() now throws an paInternalError if the type id was out-of-range; this + is a temporary work-around (see comments). + - Changed CbInterface to use paCallbackFun() instead of operator()(). + - Renamed ``object'' to ``instance'' in CbMemFunAdapter.hxx. + - Added StreamConfiguration::setXyzHostApiSpecificSampleFormat(). + - Added StreamConfiguration::isXyzSampleFormatHostApiSpecific(). + - Changed error handling in System::terminate(), it can now throw an Exception. + - Added error handling in System::defaultHostApi(). + - Added error handling in System::hostApisEnd(). + - Changed some (but probably not all) C casts to C++ casts to avoid confusion with a + certain Python person. + - Renamed RaiiSystem to AutoSystem (class and file) as this is a come common convention. + - Renamed System::numDevices() to System::deviceCount() to be more compatible with PortAudio + (although PortAudio uses Pa_CountDevices() instead, see comment). + - Renamed HostApi::numDevices() to HostApi::deviceCount(). + - Changed INC_ to INCLUDED_ in the header multiple include guards. + - Changed the order of functions in the StreamConfiguration class' header. + - Written some more info in PortAudioCpp.hxx (Doxygen). + - Added CallbackStream.hxx and CallbackStream.cxx files. + + Refactored StreamConfiguration to remove the duplication which was there. There is now a + HalfDuplexStreamConfiguration class. Also made some improvements to these classes while + doing the refactoring. + + Moved all code files to source/portaudiocpp/ and changed includes. + + Moved all header files to include/portaudiocpp/ to easy a binary build if needed. The project + must be set to have .../include/ as a path to look for includes. + + Refactored the Stream class into a Stream base class and a CallbackStream derived class. + - Renamed Stream::usingXyz() to Stream::xyz(). + - Updated some doxy comments. + - Changed ``using namespace portaudio'' in .cxx files to ``namespace portaudio { ... }''. + +PortAudioCpp v19 revision 05 03/04/09: + + mblaauw: + - Initial release on the PortAudio mailinglist. + + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/INSTALL b/tools/tracker/packages/portaudio/bindings/cpp/INSTALL new file mode 100644 index 0000000..23e5f25 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/INSTALL @@ -0,0 +1,236 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free +Software Foundation, Inc. + +This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + +These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. (Caching is +disabled by default to prevent problems with accidental use of stale +cache files.) + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You only need +`configure.ac' if you want to change it or regenerate `configure' using +a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + +Some systems require unusual options for compilation or linking that the +`configure' script does not know about. Run `./configure --help' for +details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + +You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not support the `VPATH' +variable, you have to compile the package for one architecture at a +time in the source code directory. After you have installed the +package for one architecture, use `make distclean' before reconfiguring +for another architecture. + +Installation Names +================== + +By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + +Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + +There may be some features `configure' cannot figure out automatically, +but needs to determine by the type of machine the package will run on. +Usually, assuming the package is built to be run on the _same_ +architectures, `configure' can figure that out, but if it prints a +message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + +If you want to set default values for `configure' scripts to share, you +can create a site shell script called `config.site' that gives default +values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + +Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). Here is a another example: + + /bin/bash ./configure CONFIG_SHELL=/bin/bash + +Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent +configuration-related scripts to be executed by `/bin/bash'. + +`configure' Invocation +====================== + +`configure' recognizes the following options to control how it operates. + +`--help' +`-h' + Print a summary of the options to `configure', and exit. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/Makefile.am b/tools/tracker/packages/portaudio/bindings/cpp/Makefile.am new file mode 100644 index 0000000..b10449c --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/Makefile.am @@ -0,0 +1,7 @@ +SUBDIRS = lib include bin +#doc + +EXTRA_DIST = portaudiocpp.pc + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = portaudiocpp.pc diff --git a/tools/tracker/packages/portaudio/bindings/cpp/Makefile.in b/tools/tracker/packages/portaudio/bindings/cpp/Makefile.in new file mode 100644 index 0000000..f60601b --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/Makefile.in @@ -0,0 +1,642 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = . +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +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@ +DIST_COMMON = README $(am__configure_deps) \ + $(srcdir)/../../config.guess $(srcdir)/../../config.sub \ + $(srcdir)/../../install-sh $(srcdir)/../../ltmain.sh \ + $(srcdir)/../../missing $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/portaudiocpp.pc.in \ + $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno configure.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = portaudiocpp.pc +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-exec-recursive install-info-recursive \ + install-recursive installcheck-recursive installdirs-recursive \ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(pkgconfigdir)" +pkgconfigDATA_INSTALL = $(INSTALL_DATA) +DATA = $(pkgconfig_DATA) +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_INCLUDES = @DEFAULT_INCLUDES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_VERSION_INFO = @LT_VERSION_INFO@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PORTAUDIO_ROOT = @PORTAUDIO_ROOT@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +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@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +SUBDIRS = lib include bin +#doc +EXTRA_DIST = portaudiocpp.pc +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = portaudiocpp.pc +all: all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ + cd $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +portaudiocpp.pc: $(top_builddir)/config.status $(srcdir)/portaudiocpp.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ + $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ + rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + mkdir $(distdir) + $(mkdir_p) $(distdir)/. $(distdir)/../.. + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(mkdir_p) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + distdir) \ + || exit 1; \ + fi; \ + done + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-pkgconfigDATA + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-info-am uninstall-pkgconfigDATA + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ + check-am clean clean-generic clean-libtool clean-recursive \ + ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ + dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-generic distclean-libtool distclean-recursive \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-exec install-exec-am \ + install-info install-info-am install-man install-pkgconfigDATA \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + maintainer-clean-recursive mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am uninstall-info-am \ + 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/tools/tracker/packages/portaudio/bindings/cpp/NEWS b/tools/tracker/packages/portaudio/bindings/cpp/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/tools/tracker/packages/portaudio/bindings/cpp/README b/tools/tracker/packages/portaudio/bindings/cpp/README new file mode 100644 index 0000000..e69de29 diff --git a/tools/tracker/packages/portaudio/bindings/cpp/SConscript b/tools/tracker/packages/portaudio/bindings/cpp/SConscript new file mode 100644 index 0000000..2bad5ee --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/SConscript @@ -0,0 +1,64 @@ +import os.path + +Import("env", "buildDir") +env.Append(CPPPATH="include") + +ApiVer = "0.0.12" +Major, Minor, Micro = [int(c) for c in ApiVer.split(".")] + +sharedLibs = [] +staticLibs = [] +Import("Platform", "Posix") +if Platform in Posix: + env["SHLIBSUFFIX"] = ".so.%d.%d.%d" % (Major, Minor, Micro) + soFile = "libportaudiocpp.so" + env.AppendUnique(SHLINKFLAGS="-Wl,-soname=%s.%d" % (soFile, Major)) + + # Create symlinks + def symlink(env, target, source): + trgt = str(target[0]) + src = str(source[0]) + if os.path.islink(trgt) or os.path.exists(trgt): + os.remove(trgt) + os.symlink(os.path.basename(src), trgt) + lnk0 = env.Command(soFile + ".%d" % (Major), soFile + ".%d.%d.%d" % (Major, Minor, Micro), symlink) + lnk1 = env.Command(soFile, soFile + ".%d" % (Major), symlink) + sharedLibs.append(lnk0) + sharedLibs.append(lnk1) + +src = [os.path.join("source", "portaudiocpp", "%s.cxx" % f) for f in ("BlockingStream", "CallbackInterface", \ + "CallbackStream", "CFunCallbackStream","CppFunCallbackStream", "Device", + "DirectionSpecificStreamParameters", "Exception", "HostApi", "InterfaceCallbackStream", + "MemFunCallbackStream", "Stream", "StreamParameters", "System", "SystemDeviceIterator", + "SystemHostApiIterator")] +env.Append(LIBS="portaudio", LIBPATH=buildDir) +sharedLib = env.SharedLibrary("portaudiocpp", src, LIBS=["portaudio"]) +staticLib = env.Library("portaudiocpp", src, LIBS=["portaudio"]) +sharedLibs.append(sharedLib) +staticLibs.append(staticLib) + +headers = Split("""AutoSystem.hxx + BlockingStream.hxx + CallbackInterface.hxx + CallbackStream.hxx + CFunCallbackStream.hxx + CppFunCallbackStream.hxx + Device.hxx + DirectionSpecificStreamParameters.hxx + Exception.hxx + HostApi.hxx + InterfaceCallbackStream.hxx + MemFunCallbackStream.hxx + PortAudioCpp.hxx + SampleDataFormat.hxx + Stream.hxx + StreamParameters.hxx + SystemDeviceIterator.hxx + SystemHostApiIterator.hxx + System.hxx + """) +if env["PLATFORM"] == "win32": + headers.append("AsioDeviceAdapter.hxx") +headers = [File(os.path.join("include", "portaudiocpp", h)) for h in headers] + +Return("sharedLibs", "staticLibs", "headers") diff --git a/tools/tracker/packages/portaudio/bindings/cpp/aclocal.m4 b/tools/tracker/packages/portaudio/bindings/cpp/aclocal.m4 new file mode 100644 index 0000000..38a7545 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/aclocal.m4 @@ -0,0 +1,7336 @@ +# generated automatically by aclocal 1.9.6 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# 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. + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + +# serial 48 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] + +# Same as above, but do not quote variable references. +[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Check if we have a version mismatch between libtool.m4 and ltmain.sh. +# +# Note: This should be in AC_LIBTOOL_SETUP, _after_ $ltmain have been defined. +# We also should do it _before_ AC_LIBTOOL_LANG_C_CONFIG that actually +# calls AC_LIBTOOL_CONFIG and creates libtool. +# +_LT_VERSION_CHECK + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_VERSION_CHECK +# ----------------- +AC_DEFUN([_LT_VERSION_CHECK], +[AC_MSG_CHECKING([for correct ltmain.sh version]) +if test "x$ltmain" = "x" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + +*** @<:@Gentoo@:>@ sanity check failed! *** +*** \$ltmain is not defined, please check the patch for consistency! *** +]) +fi +gentoo_lt_version="1.5.22" +gentoo_ltmain_version=`sed -n '/^[[ ]]*VERSION=/{s/^[[ ]]*VERSION=//;p;q;}' "$ltmain"` +if test "x$gentoo_lt_version" != "x$gentoo_ltmain_version" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + +*** @<:@Gentoo@:>@ sanity check failed! *** +*** libtool.m4 and ltmain.sh have a version mismatch! *** +*** (libtool.m4 = $gentoo_lt_version, ltmain.sh = $gentoo_ltmain_version) *** + +Please run: + + libtoolize --copy --force + +if appropriate, please contact the maintainer of this +package (or your distribution) for help. +]) +else + AC_MSG_RESULT(yes) +fi +])# _LT_VERSION_CHECK + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +AC_DEFUN([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +AC_DEFUN([_LT_COMPILER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +AC_DEFUN([_LT_LINKER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$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 conftest* +])# _LT_LINKER_BOILERPLATE + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + # 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. + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# ------------------ +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# --------------------------------------------------------------------- +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ---------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [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="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + 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 +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + linux*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ +cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +$echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + else + $archive_expsym_cmds="$archive_cmds" + fi + else + ld_shlibs=no + fi + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-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='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + + 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 + ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; + 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 + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-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='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 DLLs +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +# set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# it is assumed to be `libltdl'. LIBLTDL will be prefixed with +# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' +# (note the single quotes!). If your package is not flat and you're not +# using automake, define top_builddir and top_srcdir appropriately in +# the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# and an installed libltdl is not found, it is assumed to be `libltdl'. +# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# ------------------ +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# ------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF + +# Report which library types will actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +_LT_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + 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 + 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]].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + ;; + *) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. We must also pass each convience library through + # to the system linker between allextract/defaultextract. + # The C++ compiler will combine linker options so we + # cannot just pass the convience library names through + # without $wl. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # 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. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + _LT_CC_BASENAME([$compiler]) + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + 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 + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|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 + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + *) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +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_MSG_RESULT([$SED]) +]) + +# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# 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. +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.9.6])]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 7 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE]) +AC_SUBST([$1_FALSE]) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH]) +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.58])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 +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +]) +]) + + +# 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_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"$am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +AC_DEFUN([AM_MAINTAINER_MODE], +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. +# +# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories +# created by `make install' are always world readable, even if the +# installer happens to have an overly restrictive umask (e.g. 077). +# This was a mistake. There are at least two reasons why we must not +# use `-m 0755': +# - it causes special bits like SGID to be ignored, +# - it may be too restrictive (some setups expect 775 directories). +# +# Do not use -m 0755 and let people choose whatever they expect by +# setting umask. +# +# We cannot accept any implementation of `mkdir' that recognizes `-p'. +# Some implementations (such as Solaris 8's) are not thread-safe: if a +# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' +# concurrently, both version can detect that a/ is missing, but only +# one can create it and the other will error out. Consequently we +# restrict ourselves to GNU make (using the --version option ensures +# this.) +AC_DEFUN([AM_PROG_MKDIR_P], +[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi +AC_SUBST([mkdir_p])]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/bin/Makefile.am b/tools/tracker/packages/portaudio/bindings/cpp/bin/Makefile.am new file mode 100644 index 0000000..5f97f94 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/bin/Makefile.am @@ -0,0 +1,9 @@ +BINDIR = $(top_srcdir)/example +LIBDIR = $(top_builddir)/lib + +noinst_PROGRAMS = devs sine + +LDADD = $(LIBDIR)/libportaudiocpp.la + +devs_SOURCES = $(BINDIR)/devs.cxx +sine_SOURCES = $(BINDIR)/sine.cxx diff --git a/tools/tracker/packages/portaudio/bindings/cpp/bin/Makefile.in b/tools/tracker/packages/portaudio/bindings/cpp/bin/Makefile.in new file mode 100644 index 0000000..fa45b04 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/bin/Makefile.in @@ -0,0 +1,470 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +noinst_PROGRAMS = devs$(EXEEXT) sine$(EXEEXT) +subdir = bin +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +PROGRAMS = $(noinst_PROGRAMS) +am_devs_OBJECTS = devs.$(OBJEXT) +devs_OBJECTS = $(am_devs_OBJECTS) +devs_LDADD = $(LDADD) +devs_DEPENDENCIES = $(LIBDIR)/libportaudiocpp.la +am_sine_OBJECTS = sine.$(OBJEXT) +sine_OBJECTS = $(am_sine_OBJECTS) +sine_LDADD = $(LDADD) +sine_DEPENDENCIES = $(LIBDIR)/libportaudiocpp.la +depcomp = $(SHELL) $(top_srcdir)/../../depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(devs_SOURCES) $(sine_SOURCES) +DIST_SOURCES = $(devs_SOURCES) $(sine_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_INCLUDES = @DEFAULT_INCLUDES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_VERSION_INFO = @LT_VERSION_INFO@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PORTAUDIO_ROOT = @PORTAUDIO_ROOT@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +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@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +BINDIR = $(top_srcdir)/example +LIBDIR = $(top_builddir)/lib +LDADD = $(LIBDIR)/libportaudiocpp.la +devs_SOURCES = $(BINDIR)/devs.cxx +sine_SOURCES = $(BINDIR)/sine.cxx +all: all-am + +.SUFFIXES: +.SUFFIXES: .cxx .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bin/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +devs$(EXEEXT): $(devs_OBJECTS) $(devs_DEPENDENCIES) + @rm -f devs$(EXEEXT) + $(CXXLINK) $(devs_LDFLAGS) $(devs_OBJECTS) $(devs_LDADD) $(LIBS) +sine$(EXEEXT): $(sine_OBJECTS) $(sine_DEPENDENCIES) + @rm -f sine$(EXEEXT) + $(CXXLINK) $(sine_LDFLAGS) $(sine_OBJECTS) $(sine_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/devs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sine.Po@am__quote@ + +.cxx.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cxx.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cxx.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +devs.o: $(BINDIR)/devs.cxx +@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT devs.o -MD -MP -MF "$(DEPDIR)/devs.Tpo" -c -o devs.o `test -f '$(BINDIR)/devs.cxx' || echo '$(srcdir)/'`$(BINDIR)/devs.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/devs.Tpo" "$(DEPDIR)/devs.Po"; else rm -f "$(DEPDIR)/devs.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(BINDIR)/devs.cxx' object='devs.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o devs.o `test -f '$(BINDIR)/devs.cxx' || echo '$(srcdir)/'`$(BINDIR)/devs.cxx + +devs.obj: $(BINDIR)/devs.cxx +@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT devs.obj -MD -MP -MF "$(DEPDIR)/devs.Tpo" -c -o devs.obj `if test -f '$(BINDIR)/devs.cxx'; then $(CYGPATH_W) '$(BINDIR)/devs.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/devs.cxx'; fi`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/devs.Tpo" "$(DEPDIR)/devs.Po"; else rm -f "$(DEPDIR)/devs.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(BINDIR)/devs.cxx' object='devs.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o devs.obj `if test -f '$(BINDIR)/devs.cxx'; then $(CYGPATH_W) '$(BINDIR)/devs.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/devs.cxx'; fi` + +sine.o: $(BINDIR)/sine.cxx +@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sine.o -MD -MP -MF "$(DEPDIR)/sine.Tpo" -c -o sine.o `test -f '$(BINDIR)/sine.cxx' || echo '$(srcdir)/'`$(BINDIR)/sine.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/sine.Tpo" "$(DEPDIR)/sine.Po"; else rm -f "$(DEPDIR)/sine.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(BINDIR)/sine.cxx' object='sine.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sine.o `test -f '$(BINDIR)/sine.cxx' || echo '$(srcdir)/'`$(BINDIR)/sine.cxx + +sine.obj: $(BINDIR)/sine.cxx +@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT sine.obj -MD -MP -MF "$(DEPDIR)/sine.Tpo" -c -o sine.obj `if test -f '$(BINDIR)/sine.cxx'; then $(CYGPATH_W) '$(BINDIR)/sine.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/sine.cxx'; fi`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/sine.Tpo" "$(DEPDIR)/sine.Po"; else rm -f "$(DEPDIR)/sine.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(BINDIR)/sine.cxx' object='sine.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o sine.obj `if test -f '$(BINDIR)/sine.cxx'; then $(CYGPATH_W) '$(BINDIR)/sine.cxx'; else $(CYGPATH_W) '$(srcdir)/$(BINDIR)/sine.cxx'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-info-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/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/Makefile.in b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/Makefile.in new file mode 100644 index 0000000..0bc6f28 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/Makefile.in @@ -0,0 +1,106 @@ +# +# Makefile template for PortAudioCpp +# Ludwig Schwardt +# 01/10/2003 +# +# Not much to edit here - rather check configure.ac +# + +PREFIX = @prefix@ +CC = @CC@ +CXX = @CXX@ +CFLAGS = @CFLAGS@ @DEFS@ +CXXFLAGS = @CXXFLAGS@ +SHARED_FLAGS = @SHARED_FLAGS@ +LIBS = @LIBS@ +DLL_LIBS = @DLL_LIBS@ +AR = @AR@ +RANLIB = @RANLIB@ +INSTALL = @INSTALL@ + +PACPP_ROOT = @PACPP_ROOT@ +PORTAUDIO = @PORTAUDIO@ +PADLL = @PADLL@ +PACPP_DLL = @PACPP_DLL@ +PALIB = libportaudio.a +PACPP_LIB = libportaudiocpp.a +PACPP_DLLV = $(PACPP_DLL).0.0.12 + +SRCDIR = $(PACPP_ROOT)/source/portaudiocpp +BINDIR = $(PACPP_ROOT)/example +LIBDIR = $(PACPP_ROOT)/lib +DOCDIR = $(PACPP_ROOT)/doc + +OBJS = \ + $(SRCDIR)/BlockingStream.o \ + $(SRCDIR)/CallbackInterface.o \ + $(SRCDIR)/CallbackStream.o \ + $(SRCDIR)/CFunCallbackStream.o \ + $(SRCDIR)/CppFunCallbackStream.o \ + $(SRCDIR)/Device.o \ + $(SRCDIR)/DirectionSpecificStreamParameters.o \ + $(SRCDIR)/Exception.o \ + $(SRCDIR)/HostApi.o \ + $(SRCDIR)/InterfaceCallbackStream.o \ + $(SRCDIR)/MemFunCallbackStream.o \ + $(SRCDIR)/Stream.o \ + $(SRCDIR)/StreamParameters.o \ + $(SRCDIR)/System.o \ + $(SRCDIR)/SystemDeviceIterator.o \ + $(SRCDIR)/SystemHostApiIterator.o + +# Not supported yet +# $(SRCDIR)/AsioDeviceAdapter.o + +EXAMPLES = \ + $(BINDIR)/devs \ + $(BINDIR)/sine + +.PHONY: all clean docs + +all: $(EXAMPLES) $(LIBDIR)/$(PACPP_LIB) $(LIBDIR)/$(PACPP_DLL) + +clean: + rm -rf $(SRCDIR)/*.o $(BINDIR)/*.o $(EXAMPLES) $(LIBDIR) $(DOCDIR)/api_reference + rm -rf autom4te.cache config.status config.log + +docs: + cd $(DOCDIR); doxygen config.doxy.linux + +%.o: %.c + $(CC) -c $(CFLAGS) $< -o $@ + +%.o: %.cxx + $(CXX) -c $(CXXFLAGS) $< -o $@ + + +$(EXAMPLES): $(BINDIR)/%: $(BINDIR)/%.o $(OBJS) + $(CXX) $^ -o $@ $(LIBS) + +$(LIBDIR)/$(PACPP_LIB): $(LIBDIR) $(OBJS) + $(AR) ruv $(LIBDIR)/$(PACPP_LIB) $(OBJS) + $(RANLIB) $(LIBDIR)/$(PACPP_LIB) + +$(LIBDIR)/$(PACPP_DLLV): $(LIBDIR) $(OBJS) + $(CXX) $(SHARED_FLAGS) -o $(LIBDIR)/$(PACPP_DLLV) $(OBJS) $(DLL_LIBS) + +$(LIBDIR)/$(PACPP_DLL): $(LIBDIR) $(OBJS) + $(CXX) $(SHARED_FLAGS) -o $(LIBDIR)/$(PACPP_DLL) $(OBJS) $(DLL_LIBS) + +#install: $(LIBDIR)/$(PACPP_LIB) $(LIBDIR)/$(PACPP_DLLV) +# $(INSTALL) -m 644 $(LIBDIR)/$(PACPP_DLLV) $(PREFIX)/lib/$(PACPP_DLLV) +# $(INSTALL) -m 644 $(LIBDIR)/$(PACPP_LIB) $(PREFIX)/lib/$(PACPP_LIB) +# cd $(PREFIX)/lib && rm -f $(PACPP_DLL) && ln -s $(PACPP_DLLV) $(PACPP_DLL) +# @echo "" +# @echo "------------------------------------------------------------" +# @echo "PortAudioCpp was successfully installed." +# @echo "" +# @echo "On some systems (e.g. Linux) you should run 'ldconfig' now" +# @echo "to make the shared object available. You may also need to" +# @echo "modify your LD_LIBRARY_PATH environment variable to include" +# @echo "the directory $(PREFIX)/lib" +# @echo "------------------------------------------------------------" +# @echo "" + +$(LIBDIR): + mkdir $(LIBDIR) diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/OUT_OF_DATE b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/OUT_OF_DATE new file mode 100644 index 0000000..e69de29 diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/aclocal.m4 b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/aclocal.m4 new file mode 100644 index 0000000..c80e0ac --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/aclocal.m4 @@ -0,0 +1,57 @@ + +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN(PKG_CHECK_MODULES, [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/config.guess b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/config.guess new file mode 100644 index 0000000..297e5c3 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/config.guess @@ -0,0 +1,1308 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. + +timestamp='2001-10-05' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 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. + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +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 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # 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 + + +dummy=dummy-$$ +trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int dummy(){}" > $dummy.c ; + for c in cc gcc c89 ; do + ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; + if test $? = 0 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + rm -f $dummy.c $dummy.o $dummy.rel ; + 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' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # Determine the machine/vendor (is the vendor relevant). + case "${UNAME_MACHINE}" in + amiga) machine=m68k-unknown ;; + arm32) machine=arm-unknown ;; + atari*) machine=m68k-atari ;; + sun3*) machine=m68k-sun ;; + mac68k) machine=m68k-apple ;; + macppc) machine=powerpc-apple ;; + hp3[0-9][05]) machine=m68k-hp ;; + ibmrt|romp-ibm) machine=romp-ibm ;; + sparc*) machine=`uname -p`-unknown ;; + *) machine=${UNAME_MACHINE}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE}" in + i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # 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 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mipseb-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # 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. + cat <$dummy.s + .data +\$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + + .text + .globl main + .align 4 + .ent main +main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + eval $set_cc_for_build + $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + if test "$?" = 0 ; then + case `./$dummy` in + 0-0) + UNAME_MACHINE="alpha" + ;; + 1-0) + UNAME_MACHINE="alphaev5" + ;; + 1-1) + UNAME_MACHINE="alphaev56" + ;; + 1-101) + UNAME_MACHINE="alphapca56" + ;; + 2-303) + UNAME_MACHINE="alphaev6" + ;; + 2-307) + UNAME_MACHINE="alphaev67" + ;; + 2-1307) + UNAME_MACHINE="alphaev68" + ;; + esac + fi + rm -f $dummy.s $dummy + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + 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 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + 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 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + 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 0 ;; + 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 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(head -1 /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 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + # 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 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy \ + && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + 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 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????: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 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + 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 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo rs6000-ibm-aix3.2.5 + 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 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | 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 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy` + if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi + rm -f $dummy.c $dummy + fi ;; + esac + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + 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 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3D:*:*:*) + echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + 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 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + 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 i386-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in + big) echo mips-unknown-linux-gnu && exit 0 ;; + little) echo mipsel-unknown-linux-gnu && exit 0 ;; + esac + ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit 0 ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit 0 ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + ld_supported_targets=`cd /; ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit 0 ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + cat >$dummy.c < +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif +#ifdef __ELF__ +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-pc-linux-gnu\n", argv[1]); +# else + printf ("%s-pc-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-pc-linux-gnulibc1\n", argv[1]); +# endif +#else + printf ("%s-pc-linux-gnuaout\n", argv[1]); +#endif + return 0; +} +EOF + $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 + rm -f $dummy.c $dummy + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; + 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 0 ;; + 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 0 ;; + 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 0 ;; + i*86:*:5:[78]*) + 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 0 ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + 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 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*: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 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *: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 0 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + 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 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + echo `uname -p`-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + if test "${UNAME_MACHINE}" = "x86pc"; then + UNAME_MACHINE=pc + fi + echo `uname -p`-${UNAME_MACHINE}-nto-qnx + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[KW]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *: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 0 ;; + 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 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 +rm -f $dummy.c $dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# 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 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/config.sub b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/config.sub new file mode 100644 index 0000000..6eea727 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/config.sub @@ -0,0 +1,1505 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +timestamp='2003-07-17' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 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. + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +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 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # 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 0;; + + * ) + 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* | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -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/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32r | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | msp430 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32r-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | msp430-* \ + | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # 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 + ;; + 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 + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + 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 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + 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 + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nv1) + basic_machine=nv1-cray + os=-unicosmp + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; + 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 + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + 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 + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + 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 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + 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 + ;; + sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -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*) + # 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* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -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 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -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 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -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 + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -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 0 + +# 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/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/configure b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/configure new file mode 100644 index 0000000..69070c6 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/configure @@ -0,0 +1,4297 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.57 for PortAudioCpp 12. +# +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +# 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 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+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + 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 + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME='PortAudioCpp' +PACKAGE_TARNAME='portaudiocpp' +PACKAGE_VERSION='12' +PACKAGE_STRING='PortAudioCpp 12' +PACKAGE_BUGREPORT='' + +ac_unique_file="../../include/portaudiocpp/PortAudioCpp.hxx" +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX LN_S RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR PACPP_ROOT PORTAUDIO PADLL PACPP_DLL PACPP_INC SHARED_FLAGS DLL_LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os PKG_CONFIG JACK_CFLAGS JACK_LIBS LIBOBJS LTLIBOBJS' +ac_subst_files='' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +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 + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -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 | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -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 ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + 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 ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +# 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 its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CXX_set=${CXX+set} +ac_env_CXX_value=$CXX +ac_cv_env_CXX_set=${CXX+set} +ac_cv_env_CXX_value=$CXX +ac_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_env_CXXFLAGS_value=$CXXFLAGS +ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} +ac_cv_env_CXXFLAGS_value=$CXXFLAGS + +# +# 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 PortAudioCpp 12 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 \`..'] + +_ACEOF + + cat <<_ACEOF +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] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --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] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of PortAudioCpp 12:";; + esac + cat <<\_ACEOF + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-alsa (default=auto) + --with-jack (default=auto) + --with-oss (default=yes) + --with-host_os (no default) + --with-winapi ((wmme/directx/asio) default=wmme) + --with-macapi (asio) default=asio) + --with-asiodir (default=/usr/local/asiosdk2) + --with-dxdir (default=/usr/local/dx7sdk) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory + CXX C++ compiler command + CXXFLAGS C++ compiler flags + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style 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 + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd "$ac_popdir" + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF +PortAudioCpp configure 12 +generated by GNU Autoconf 2.57 + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +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 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by PortAudioCpp $as_me 12, which was +generated by GNU Autoconf 2.57. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +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` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done + +} >&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_sep= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +###### Top-level directory of pacpp +###### This makes it easy to shuffle the build directories +###### Also edit AC_CONFIG_SRCDIR above (wouldn't accept this variable)! +PACPP_ROOT="../.." + +###### +###### SET THIS TO PORTAUDIO DIRECTORY +###### +PORTAUDIO="$PACPP_ROOT/../portaudio" + +# Various other variables and flags + +PACPP_INC="$PACPP_ROOT/include" +INCLUDES="-I$PACPP_INC -I$PORTAUDIO -I$PORTAUDIO/pa_common" +CFLAGS="-g -O2 -Wall -ansi -pedantic $INCLUDES" +CXXFLAGS="$CFLAGS" +PALIBDIR="$PORTAUDIO/lib" + +# Checks for programs + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_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" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +echo "$as_me:$LINENO: checking for C compiler default output" >&5 +echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Find the output, starting from the most likely. This scheme is +# not robust to junk in `.', hence go to wildcards (a.*) only as a last +# resort. + +# Be careful to initialize this variable, since it used to be cached. +# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. +ac_cv_exeext= +# b.out is created by i960 compilers. +for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) + ;; + conftest.$ac_ext ) + # This is the source file. + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool, + # but it would be cool to find out if it's true. Does anybody + # maintain Libtool? --akim. + export ac_cv_exeext + break;; + * ) + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6 + +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6 + +echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; 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 | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6 + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6 +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cc_g=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +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 +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC + +fi + +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; +esac + +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext 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 + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CXX" && break +done +test -n "$ac_ct_CXX" || ac_ct_CXX="g++" + + CXX=$ac_ct_CXX +fi + + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +CXXFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cxx_g=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +for ac_declaration in \ + '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +#include +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>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 + +echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6 +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 +echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + +# 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" +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + /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_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +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. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +# Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $AR in + [\\/]* | ?:[\\/]*) + ac_cv_path_AR="$AR" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_AR" && ac_cv_path_AR="no" + ;; +esac +fi +AR=$ac_cv_path_AR + +if test -n "$AR"; then + echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +if [ $AR = "no" ] ; then + { { echo "$as_me:$LINENO: error: \"Could not find ar - needed to create a library\"" >&5 +echo "$as_me: error: \"Could not find ar - needed to create a library\"" >&2;} + { (exit 1); exit 1; }; }; +fi + +# This must be one of the first tests we do or it will fail... + +echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 +echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 +if test "${ac_cv_c_bigendian+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # See if sys/param.h defines the BYTE_ORDER macro. +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN + bogus endian macros +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + # It does; now see whether it defined to BIG_ENDIAN or not. +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_bigendian=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +# It does not; compile a test program. +if test "$cross_compiling" = yes; then + # try to guess the endianness by grepping values into an object file + ac_cv_c_bigendian=unknown + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; +short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; +void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } +short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; +short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; +void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } +int +main () +{ + _ascii (); _ebcdic (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then + ac_cv_c_bigendian=yes +fi +if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +int +main () +{ + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long l; + char c[sizeof (long)]; + } u; + u.l = 1; + exit (u.c[sizeof (long) - 1] == 1); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_bigendian=yes +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 +echo "${ECHO_T}$ac_cv_c_bigendian" >&6 +case $ac_cv_c_bigendian in + yes) + +cat >>confdefs.h <<\_ACEOF +#define WORDS_BIGENDIAN 1 +_ACEOF + ;; + no) + ;; + *) + { { echo "$as_me:$LINENO: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&5 +echo "$as_me: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} + { (exit 1); exit 1; }; } ;; +esac + + +# Transfer these variables to the Makefile + + + + + + + + + +##################### CHECK FOR INSTALLED PACKAGES ############################ + +# checks for various host APIs and arguments to configure that +# turn them on or off + +echo "$as_me:$LINENO: checking for snd_pcm_open in -lasound" >&5 +echo $ECHO_N "checking for snd_pcm_open in -lasound... $ECHO_C" >&6 +if test "${ac_cv_lib_asound_snd_pcm_open+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lasound $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char snd_pcm_open (); +int +main () +{ +snd_pcm_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_asound_snd_pcm_open=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_asound_snd_pcm_open=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_asound_snd_pcm_open" >&5 +echo "${ECHO_T}$ac_cv_lib_asound_snd_pcm_open" >&6 +if test $ac_cv_lib_asound_snd_pcm_open = yes; then + have_alsa=yes +else + have_alsa=no +fi + + +# Determine the host description for the subsequent test. +# PKG_CHECK_MODULES seems to check and set the host variable also, but +# that then requires pkg-config availability which is not standard on +# MinGW systems and can be a pain to install. +# Make sure we can run config.sub. +$ac_config_sub sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 +echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } + +echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6 +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_build_alias=$build_alias +test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` +test -z "$ac_cv_build_alias" && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6 +build=$ac_cv_build +build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + +echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6 +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_host_alias=$host_alias +test -z "$ac_cv_host_alias" && + ac_cv_host_alias=$ac_cv_build_alias +ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6 +host=$ac_cv_host +host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + + + + succeeded=no + + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG + +if test -n "$PKG_CONFIG"; then + echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +echo "${ECHO_T}$PKG_CONFIG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + echo "$as_me:$LINENO: checking for jack" >&5 +echo $ECHO_N "checking for jack... $ECHO_C" >&6 + + if $PKG_CONFIG --exists "jack" ; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + succeeded=yes + + echo "$as_me:$LINENO: checking JACK_CFLAGS" >&5 +echo $ECHO_N "checking JACK_CFLAGS... $ECHO_C" >&6 + JACK_CFLAGS=`$PKG_CONFIG --cflags "jack"` + echo "$as_me:$LINENO: result: $JACK_CFLAGS" >&5 +echo "${ECHO_T}$JACK_CFLAGS" >&6 + + echo "$as_me:$LINENO: checking JACK_LIBS" >&5 +echo $ECHO_N "checking JACK_LIBS... $ECHO_C" >&6 + JACK_LIBS=`$PKG_CONFIG --libs "jack"` + echo "$as_me:$LINENO: result: $JACK_LIBS" >&5 +echo "${ECHO_T}$JACK_LIBS" >&6 + else + JACK_CFLAGS="" + JACK_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + JACK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "jack"` + + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + have_jack=yes + else + have_jack=no + fi + + + +# Check whether --with-alsa or --without-alsa was given. +if test "${with_alsa+set}" = set; then + withval="$with_alsa" + with_alsa=$withval +else + with_alsa="yes" +fi; + + +# Check whether --with-jack or --without-jack was given. +if test "${with_jack+set}" = set; then + withval="$with_jack" + with_jack=$withval +else + with_jack="yes" +fi; + + +# Check whether --with-oss or --without-oss was given. +if test "${with_oss+set}" = set; then + withval="$with_oss" + with_oss=$withval +else + with_oss="yes" +fi; + + +# Check whether --with-host_os or --without-host_os was given. +if test "${with_host_os+set}" = set; then + withval="$with_host_os" + host_os=$withval +fi; + + +# Check whether --with-winapi or --without-winapi was given. +if test "${with_winapi+set}" = set; then + withval="$with_winapi" + with_winapi=$withval +else + with_winapi="wmme" +fi; + +# Mac API added for ASIO, can have other api's listed + +# Check whether --with-macapi or --without-macapi was given. +if test "${with_macapi+set}" = set; then + withval="$with_macapi" + with_macapi=$withval +else + with_macapi="asio" +fi; + + +# Check whether --with-asiodir or --without-asiodir was given. +if test "${with_asiodir+set}" = set; then + withval="$with_asiodir" + with_asiodir=$withval +else + with_asiodir="/usr/local/asiosdk2" +fi; + + +# Check whether --with-dxdir or --without-dxdir was given. +if test "${with_dxdir+set}" = set; then + withval="$with_dxdir" + with_dxdir=$withval +else + with_dxdir="/usr/local/dx7sdk" +fi; + + +##################### HOST-SPECIFIC LIBRARY SETTINGS ########################## + +case "${host_os}" in + darwin* ) + # Mac OS X configuration + + LIBS="-framework AudioUnit -framework AudioToolbox -framework CoreAudio"; + PADLL="libportaudio.dylib"; + PACPP_DLL="libportaudiocpp.dylib"; + SHARED_FLAGS="-framework AudioUnit -framework AudioToolbox"; + SHARED_FLAGS="$SHARED_FLAGS -framework CoreAudio -dynamiclib"; + if [ $with_macapi = "asio" ] ; then + if [ $with_asiodir ] ; then + ASIODIR="$with_asiodir"; + else + ASIODIR="/usr/local/asiosdk2"; + fi + echo "ASIODIR: $ASIODIR"; + fi + ;; + + mingw* ) + # MingW configuration + + echo "WINAPI: $with_winapi" + if [ $with_winapi = "directx" ] ; then + if [ $with_dxdir ] ; then + DXDIR="$with_dxdir"; + else + DXDIR="/usr/local/dx7sdk"; + fi + echo "DXDIR: $DXDIR" + LIBS="-L$PALIBDIR -lportaudio" + LIBS="$LIBS -lwinmm -lm -ldsound -lole32"; + PADLL="portaudio.dll"; + PACPP_DLL="portaudiocpp.dll"; + SHARED_FLAGS="-shared -mthreads"; + DLL_LIBS="-lwinmm -lm -L./dx7sdk/lib -ldsound -lole32"; + CFLAGS="$CFLAGS -DPA_NO_WMME -DPA_NO_ASIO"; + CXXFLAGS="$CFLAGS" + elif [ $with_winapi = "asio" ] ; then + if [ $with_asiodir ] ; then + ASIODIR="$with_asiodir"; + else + ASIODIR="/usr/local/asiosdk2"; + fi + echo "ASIODIR: $ASIODIR" + + LIBS="-L$PALIBDIR -lportaudio" + LIBS="$LIBS -lwinmm -lm -lstdc++ -lole32 -luuid"; + PADLL="portaudio.dll"; + PACPP_DLL="portaudiocpp.dll"; + SHARED_FLAGS="-shared -mthreads"; + DLL_LIBS="-lwinmm -lm -lstdc++ -lole32 -luuid"; + CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer -DPA_NO_WMME -DPA_NO_DS -DWINDOWS"; + CXXFLAGS="$CFLAGS"; + else # WMME default + LIBS="-L$PALIBDIR -lportaudio" + LIBS="$LIBS -lwinmm -lm -lstdc++ -lole32 -luuid"; + PADLL="portaudio.dll"; + PACPP_DLL="portaudiocpp.dll"; + SHARED_FLAGS="-shared -mthreads"; + DLL_LIBS="-lwinmm"; + CFLAGS="$CFLAGS -DPA_NO_DS -DPA_NO_ASIO"; + CXXFLAGS="$CFLAGS"; + fi + ;; + + cygwin* ) + # Cygwin configuration + + LIBS="-L$PALIBDIR -lportaudio" + LIBS="$LIBS -lwinmm -lm"; + PADLL="portaudio.dll"; + PACPP_DLL="portaudiocpp.dll"; + SHARED_FLAGS="-shared -mthreads"; + DLL_LIBS="-lwinmm"; + ;; + + *) + # Unix OSS configuration + + +echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 +echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 +if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char pthread_create (); +int +main () +{ +pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_pthread_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_pthread_pthread_create=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 +if test $ac_cv_lib_pthread_pthread_create = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF + + LIBS="-lpthread $LIBS" + +else + { { echo "$as_me:$LINENO: error: libpthread not found!" >&5 +echo "$as_me: error: libpthread not found!" >&2;} + { (exit 1); exit 1; }; } +fi + + + LIBS="$LIBS -L$PALIBDIR -lportaudio" + + if [ $have_jack = "yes" ] && [ $with_jack != "no" ] ; then + LIBS="$LIBS $JACK_LIBS" + CFLAGS="$CFLAGS $JACK_CFLAGS" + cat >>confdefs.h <<\_ACEOF +#define PA_USE_JACK 1 +_ACEOF + + fi + + if [ $have_alsa = "yes" ] && [ $with_alsa != "no" ] ; then + LIBS="$LIBS -lasound" + cat >>confdefs.h <<\_ACEOF +#define PA_USE_ALSA 1 +_ACEOF + + fi + + if [ $with_oss != "no" ] ; then + cat >>confdefs.h <<\_ACEOF +#define PA_USE_OSS 1 +_ACEOF + + fi + LIBS="$LIBS -lm -lpthread"; + PADLL="libportaudio.so"; + PACPP_DLL="libportaudiocpp.so"; + SHARED_FLAGS="-shared"; +esac + + ac_config_files="$ac_config_files Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# 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. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *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 \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + 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}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be 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+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + 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 + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="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="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by PortAudioCpp $as_me 12, which was +generated by GNU Autoconf 2.57. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Report bugs to ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +PortAudioCpp config.status 12 +configured by $0, generated by GNU Autoconf 2.57, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF + + + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + 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 +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@CXX@,$CXX,;t t +s,@CXXFLAGS@,$CXXFLAGS,;t t +s,@ac_ct_CXX@,$ac_ct_CXX,;t t +s,@LN_S@,$LN_S,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@AR@,$AR,;t t +s,@PACPP_ROOT@,$PACPP_ROOT,;t t +s,@PORTAUDIO@,$PORTAUDIO,;t t +s,@PADLL@,$PADLL,;t t +s,@PACPP_DLL@,$PACPP_DLL,;t t +s,@PACPP_INC@,$PACPP_INC,;t t +s,@SHARED_FLAGS@,$SHARED_FLAGS,;t t +s,@DLL_LIBS@,$DLL_LIBS,;t t +s,@build@,$build,;t t +s,@build_cpu@,$build_cpu,;t t +s,@build_vendor@,$build_vendor,;t t +s,@build_os@,$build_os,;t t +s,@host@,$host,;t t +s,@host_cpu@,$host_cpu,;t t +s,@host_vendor@,$host_vendor,;t t +s,@host_os@,$host_os,;t t +s,@PKG_CONFIG@,$PKG_CONFIG,;t t +s,@JACK_CFLAGS@,$JACK_CFLAGS,;t t +s,@JACK_LIBS@,$JACK_LIBS,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # 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. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@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,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/configure.ac b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/configure.ac new file mode 100644 index 0000000..5457c53 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/configure.ac @@ -0,0 +1,214 @@ +# +# PortAudioCpp V19 autoconf input file +# Shamelessly ripped from the PortAudio one by Dominic Mazzoni +# Ludwig Schwardt +# + +# Require autoconf >= 2.13 +AC_PREREQ(2.13) + +AC_INIT([PortAudioCpp], [12]) +AC_CONFIG_SRCDIR([../../include/portaudiocpp/PortAudioCpp.hxx]) + +###### Top-level directory of pacpp +###### This makes it easy to shuffle the build directories +###### Also edit AC_CONFIG_SRCDIR above (wouldn't accept this variable)! +PACPP_ROOT="../.." + +###### +###### SET THIS TO PORTAUDIO DIRECTORY +###### +PORTAUDIO="$PACPP_ROOT/../portaudio" + +# Various other variables and flags + +PACPP_INC="$PACPP_ROOT/include" +INCLUDES="-I$PACPP_INC -I$PORTAUDIO -I$PORTAUDIO/pa_common" +CFLAGS="-g -O2 -Wall -ansi -pedantic $INCLUDES" +CXXFLAGS="$CFLAGS" +PALIBDIR="$PORTAUDIO/lib" + +# Checks for programs + +AC_PROG_CC +AC_PROG_CXX +AC_PROG_LN_S +AC_PROG_RANLIB +AC_PROG_INSTALL +AC_PATH_PROG(AR, ar, no) +if [[ $AR = "no" ]] ; then + AC_MSG_ERROR("Could not find ar - needed to create a library"); +fi + +# This must be one of the first tests we do or it will fail... +AC_C_BIGENDIAN + +# Transfer these variables to the Makefile +AC_SUBST(PACPP_ROOT) +AC_SUBST(PORTAUDIO) +AC_SUBST(PADLL) +AC_SUBST(PACPP_DLL) +AC_SUBST(PACPP_INC) +AC_SUBST(SHARED_FLAGS) +AC_SUBST(DLL_LIBS) +AC_SUBST(CXXFLAGS) + +##################### CHECK FOR INSTALLED PACKAGES ############################ + +# checks for various host APIs and arguments to configure that +# turn them on or off + +AC_CHECK_LIB(asound, snd_pcm_open, have_alsa=yes, have_alsa=no) + +# Determine the host description for the subsequent test. +# PKG_CHECK_MODULES seems to check and set the host variable also, but +# that then requires pkg-config availability which is not standard on +# MinGW systems and can be a pain to install. +AC_CANONICAL_HOST + +PKG_CHECK_MODULES(JACK, jack, have_jack=yes, have_jack=no) + +AC_ARG_WITH(alsa, + [ --with-alsa (default=auto)], + with_alsa=$withval, with_alsa="yes") + +AC_ARG_WITH(jack, + [ --with-jack (default=auto)], + with_jack=$withval, with_jack="yes") + +AC_ARG_WITH(oss, + [ --with-oss (default=yes)], + with_oss=$withval, with_oss="yes") + +AC_ARG_WITH(host_os, + [ --with-host_os (no default)], + host_os=$withval) + +AC_ARG_WITH(winapi, + [ --with-winapi ((wmme/directx/asio) default=wmme)], + with_winapi=$withval, with_winapi="wmme") + +# Mac API added for ASIO, can have other api's listed +AC_ARG_WITH(macapi, + [ --with-macapi (asio) default=asio)], + with_macapi=$withval, with_macapi="asio") + +AC_ARG_WITH(asiodir, + [ --with-asiodir (default=/usr/local/asiosdk2)], + with_asiodir=$withval, with_asiodir="/usr/local/asiosdk2") + +AC_ARG_WITH(dxdir, + [ --with-dxdir (default=/usr/local/dx7sdk)], + with_dxdir=$withval, with_dxdir="/usr/local/dx7sdk") + + +##################### HOST-SPECIFIC LIBRARY SETTINGS ########################## + +case "${host_os}" in + darwin* ) + # Mac OS X configuration + + LIBS="-framework AudioUnit -framework AudioToolbox -framework CoreAudio"; + PADLL="libportaudio.dylib"; + PACPP_DLL="libportaudiocpp.dylib"; + SHARED_FLAGS="-framework AudioUnit -framework AudioToolbox"; + SHARED_FLAGS="$SHARED_FLAGS -framework CoreAudio -dynamiclib"; + if [[ $with_macapi = "asio" ]] ; then + if [[ $with_asiodir ]] ; then + ASIODIR="$with_asiodir"; + else + ASIODIR="/usr/local/asiosdk2"; + fi + echo "ASIODIR: $ASIODIR"; + fi + ;; + + mingw* ) + # MingW configuration + + echo "WINAPI: $with_winapi" + if [[ $with_winapi = "directx" ]] ; then + if [[ $with_dxdir ]] ; then + DXDIR="$with_dxdir"; + else + DXDIR="/usr/local/dx7sdk"; + fi + echo "DXDIR: $DXDIR" + LIBS="-L$PALIBDIR -lportaudio" + LIBS="$LIBS -lwinmm -lm -ldsound -lole32"; + PADLL="portaudio.dll"; + PACPP_DLL="portaudiocpp.dll"; + SHARED_FLAGS="-shared -mthreads"; + DLL_LIBS="-lwinmm -lm -L./dx7sdk/lib -ldsound -lole32"; + CFLAGS="$CFLAGS -DPA_NO_WMME -DPA_NO_ASIO"; + CXXFLAGS="$CFLAGS" + elif [[ $with_winapi = "asio" ]] ; then + if [[ $with_asiodir ]] ; then + ASIODIR="$with_asiodir"; + else + ASIODIR="/usr/local/asiosdk2"; + fi + echo "ASIODIR: $ASIODIR" + + LIBS="-L$PALIBDIR -lportaudio" + LIBS="$LIBS -lwinmm -lm -lstdc++ -lole32 -luuid"; + PADLL="portaudio.dll"; + PACPP_DLL="portaudiocpp.dll"; + SHARED_FLAGS="-shared -mthreads"; + DLL_LIBS="-lwinmm -lm -lstdc++ -lole32 -luuid"; + CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer -DPA_NO_WMME -DPA_NO_DS -DWINDOWS"; + CXXFLAGS="$CFLAGS"; + else # WMME default + LIBS="-L$PALIBDIR -lportaudio" + LIBS="$LIBS -lwinmm -lm -lstdc++ -lole32 -luuid"; + PADLL="portaudio.dll"; + PACPP_DLL="portaudiocpp.dll"; + SHARED_FLAGS="-shared -mthreads"; + DLL_LIBS="-lwinmm"; + CFLAGS="$CFLAGS -DPA_NO_DS -DPA_NO_ASIO"; + CXXFLAGS="$CFLAGS"; + fi + ;; + + cygwin* ) + # Cygwin configuration + + LIBS="-L$PALIBDIR -lportaudio" + LIBS="$LIBS -lwinmm -lm"; + PADLL="portaudio.dll"; + PACPP_DLL="portaudiocpp.dll"; + SHARED_FLAGS="-shared -mthreads"; + DLL_LIBS="-lwinmm"; + ;; + + *) + # Unix OSS configuration + + AC_CHECK_LIB(pthread, pthread_create, + , + AC_MSG_ERROR([libpthread not found!])) + + LIBS="$LIBS -L$PALIBDIR -lportaudio" + + if [[ $have_jack = "yes" ] && [ $with_jack != "no" ]] ; then + LIBS="$LIBS $JACK_LIBS" + CFLAGS="$CFLAGS $JACK_CFLAGS" + AC_DEFINE(PA_USE_JACK) + fi + + if [[ $have_alsa = "yes" ] && [ $with_alsa != "no" ]] ; then + LIBS="$LIBS -lasound" + AC_DEFINE(PA_USE_ALSA) + fi + + if [[ $with_oss != "no" ]] ; then + AC_DEFINE(PA_USE_OSS) + fi + LIBS="$LIBS -lm -lpthread"; + PADLL="libportaudio.so"; + PACPP_DLL="libportaudiocpp.so"; + SHARED_FLAGS="-shared"; +esac + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/install-sh b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/install-sh new file mode 100644 index 0000000..e9de238 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/gnu/install-sh @@ -0,0 +1,251 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# 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. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + chmodcmd="" + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# 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 $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/devs_example.dsp b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/devs_example.dsp new file mode 100644 index 0000000..d240348 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/devs_example.dsp @@ -0,0 +1,248 @@ +# Microsoft Developer Studio Project File - Name="devs_example" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=devs_example - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "devs_example.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "devs_example.mak" CFG="devs_example - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "devs_example - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "devs_example - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "devs_example - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 portaudiocpp-vc6-r.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../bin/devs_example.exe" /libpath:"../../lib" + +!ELSEIF "$(CFG)" == "devs_example - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 portaudiocpp-vc6-d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../bin/devs_example.exe" /pdbtype:sept /libpath:"../../lib" + +!ENDIF + +# Begin Target + +# Name "devs_example - Win32 Release" +# Name "devs_example - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_allocation.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\pa_asio\pa_asio.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_converters.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_cpuload.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_dither.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_front.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_process.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_skeleton.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_stream.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_trace.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\os\win\pa_win_hostapis.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\os\win\pa_win_util.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\wmme\pa_win_wmme.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_allocation.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_converters.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_cpuload.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_dither.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_endianness.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_hostapi.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_process.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_stream.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_trace.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_util.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Group "Example Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\example\devs.cxx +# End Source File +# End Group +# Begin Group "ASIO 2 SDK" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\..\..\asiosdk2\common\asio.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\asiosdk2\host\asiodrivers.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp +# End Source File +# End Group +# End Target +# End Project diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/devs_example.dsw b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/devs_example.dsw new file mode 100644 index 0000000..6c3bc6d --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/devs_example.dsw @@ -0,0 +1,44 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "devs_example"=".\devs_example.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name static_library + End Project Dependency +}}} + +############################################################################### + +Project: "static_library"=".\static_library.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/sine_example.dsp b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/sine_example.dsp new file mode 100644 index 0000000..8687e2e --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/sine_example.dsp @@ -0,0 +1,252 @@ +# Microsoft Developer Studio Project File - Name="sine_example" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=sine_example - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "sine_example.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "sine_example.mak" CFG="sine_example - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "sine_example - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "sine_example - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "sine_example - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 portaudiocpp-vc6-r.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../../bin/sine_example.exe" /libpath:"../../lib" + +!ELSEIF "$(CFG)" == "sine_example - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /I "../../../../src/common/" /I "../../../../../asiosdk2/common/" /I "../../../../../asiosdk2/host/" /I "../../../../../asiosdk2/host/pc/" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 portaudiocpp-vc6-d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../bin/sine_example.exe" /pdbtype:sept /libpath:"../../lib" + +!ENDIF + +# Begin Target + +# Name "sine_example - Win32 Release" +# Name "sine_example - Win32 Debug" +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_allocation.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_converters.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_cpuload.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_dither.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_endianness.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_hostapi.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_process.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_stream.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_trace.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_types.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_util.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Group "Example Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\example\sine.cxx +# End Source File +# End Group +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\..\..\pa_asio\iasiothiscallresolver.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_allocation.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\pa_asio\pa_asio.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_converters.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_cpuload.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_dither.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_front.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_process.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_skeleton.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_stream.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\common\pa_trace.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\dsound\pa_win_ds_dynlink.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\os\win\pa_win_hostapis.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\os\win\pa_win_util.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\wasapi\pa_win_wasapi.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\hostapi\wmme\pa_win_wmme.c +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\src\os\win\pa_x86_plain_converters.c +# End Source File +# End Group +# Begin Group "ASIO 2 SDK" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\..\..\..\asiosdk2\common\asio.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\asiosdk2\host\asiodrivers.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\..\..\asiosdk2\host\pc\asiolist.cpp +# End Source File +# End Group +# End Target +# End Project diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/sine_example.dsw b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/sine_example.dsw new file mode 100644 index 0000000..d3c2b62 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/sine_example.dsw @@ -0,0 +1,44 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "sine_example"=".\sine_example.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name static_library + End Project Dependency +}}} + +############################################################################### + +Project: "static_library"=".\static_library.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/static_library.dsp b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/static_library.dsp new file mode 100644 index 0000000..4e9ded3 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/static_library.dsp @@ -0,0 +1,395 @@ +# Microsoft Developer Studio Project File - Name="static_library" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=static_library - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "static_library.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "static_library.mak" CFG="static_library - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "static_library - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "static_library - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "static_library - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MTd /W3 /GX /O2 /I "../../include/" /I "../../../../include/" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"../../lib/portaudiocpp-vc6-r.lib" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include/" /I "../../../../include/" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"../../lib/portaudiocpp-vc6-d.lib" + +!ENDIF + +# Begin Target + +# Name "static_library - Win32 Release" +# Name "static_library - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\AsioDeviceAdapter.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\BlockingStream.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\CallbackInterface.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\CallbackStream.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\CFunCallbackStream.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\CppFunCallbackStream.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\Device.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\DirectionSpecificStreamParameters.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\Exception.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\HostApi.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\InterfaceCallbackStream.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\MemFunCallbackStream.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\Stream.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\StreamParameters.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\System.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\SystemDeviceIterator.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\..\source\portaudiocpp\SystemHostApiIterator.cxx + +!IF "$(CFG)" == "static_library - Win32 Release" + +!ELSEIF "$(CFG)" == "static_library - Win32 Debug" + +# SUBTRACT CPP /YX + +!ENDIF + +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\AsioDeviceAdapter.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\AutoSystem.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\BlockingStream.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\CallbackInterface.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\CallbackStream.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\CFunCallbackStream.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\CppFunCallbackStream.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\Device.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\DirectionSpecificStreamParameters.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\Exception.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\HostApi.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\InterfaceCallbackStream.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\MemFunCallbackStream.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\PortAudioCpp.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\SampleDataFormat.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\Stream.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\StreamParameters.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\System.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\SystemDeviceIterator.hxx +# End Source File +# Begin Source File + +SOURCE=..\..\include\portaudiocpp\SystemHostApiIterator.hxx +# End Source File +# End Group +# End Target +# End Project diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/static_library.dsw b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/static_library.dsw new file mode 100644 index 0000000..0aff3f5 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc6/static_library.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "static_library"=".\static_library.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc7/OUT_OF_DATE b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7/OUT_OF_DATE new file mode 100644 index 0000000..e69de29 diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/devs_example.sln b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/devs_example.sln new file mode 100644 index 0000000..ef11811 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/devs_example.sln @@ -0,0 +1,30 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "devs_example", "devs_example.vcproj", "{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}" + ProjectSection(ProjectDependencies) = postProject + {D18EA0C9-8C65-441D-884C-55EB43A84F2A} = {D18EA0C9-8C65-441D-884C-55EB43A84F2A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.ActiveCfg = Debug|Win32 + {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.Build.0 = Debug|Win32 + {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.ActiveCfg = Release|Win32 + {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.Build.0 = Release|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/devs_example.vcproj b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/devs_example.vcproj new file mode 100644 index 0000000..6da94cd --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/devs_example.vcproj @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/sine_example.sln b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/sine_example.sln new file mode 100644 index 0000000..b3c9b29 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/sine_example.sln @@ -0,0 +1,30 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sine_example", "sine_example.vcproj", "{1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}" + ProjectSection(ProjectDependencies) = postProject + {D18EA0C9-8C65-441D-884C-55EB43A84F2A} = {D18EA0C9-8C65-441D-884C-55EB43A84F2A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.ActiveCfg = Debug|Win32 + {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Debug.Build.0 = Debug|Win32 + {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.ActiveCfg = Release|Win32 + {1B9A038D-80A3-4DBD-9F0D-AF10B49B863A}.Release.Build.0 = Release|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/sine_example.vcproj b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/sine_example.vcproj new file mode 100644 index 0000000..c95495a --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/sine_example.vcproj @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/static_library.sln b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/static_library.sln new file mode 100644 index 0000000..4ec0b6b --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/static_library.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "static_library", "static_library.vcproj", "{D18EA0C9-8C65-441D-884C-55EB43A84F2A}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.ActiveCfg = Debug|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Debug.Build.0 = Debug|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.ActiveCfg = Release|Win32 + {D18EA0C9-8C65-441D-884C-55EB43A84F2A}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/static_library.vcproj b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/static_library.vcproj new file mode 100644 index 0000000..1b060ce --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/build/vc7_1/static_library.vcproj @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/configure b/tools/tracker/packages/portaudio/bindings/cpp/configure new file mode 100644 index 0000000..608a95d --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/configure @@ -0,0 +1,21505 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.60 for PortAudioCpp 12. +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be 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 + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +# Find out whether ``test -x'' works. Don't use a zero-byte file, as +# systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + as_executable_p="test -x" +else + as_executable_p=: +fi +rm -f conf$$.file + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +echo=${ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +tagnames=${tagnames+${tagnames},}CXX + +tagnames=${tagnames+${tagnames},}F77 + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME='PortAudioCpp' +PACKAGE_TARNAME='portaudiocpp' +PACKAGE_VERSION='12' +PACKAGE_STRING='PortAudioCpp 12' +PACKAGE_BUGREPORT='' + +ac_unique_file="include/portaudiocpp/PortAudioCpp.hxx" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#endif +#if HAVE_STDINT_H +# include +#endif +#if HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +AMTAR +am__tar +am__untar +MAINTAINER_MODE_TRUE +MAINTAINER_MODE_FALSE +MAINT +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +CXX +CXXFLAGS +ac_ct_CXX +CXXDEPMODE +am__fastdepCXX_TRUE +am__fastdepCXX_FALSE +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +GREP +EGREP +LN_S +ECHO +AR +RANLIB +DLLTOOL +AS +OBJDUMP +CPP +CXXCPP +F77 +FFLAGS +ac_ct_F77 +LIBTOOL +DEFAULT_INCLUDES +PORTAUDIO_ROOT +LT_VERSION_INFO +LIBOBJS +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +CPPFLAGS +CXX +CXXFLAGS +CCC +CPP +CXXCPP +F77 +FFLAGS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_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=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures PortAudioCpp 12 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/portaudiocpp] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of PortAudioCpp 12:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-tags[=TAGS] include additional configurations [automatic] + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CPP C preprocessor + CXXCPP C++ preprocessor + F77 Fortran 77 compiler command + FFLAGS Fortran 77 compiler flags + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +PortAudioCpp configure 12 +generated by GNU Autoconf 2.60 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by PortAudioCpp $as_me 12, which was +generated by GNU Autoconf 2.60. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +am__api_version="1.9" +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. echo might interpret backslashes. +# By default was `s,x,x', remove it if useless. +cat <<\_ACEOF >conftest.sed +s/[\\$]/&&/g;s/;s,x,x,$// +_ACEOF +program_transform_name=`echo $program_transform_name | sed -f conftest.sed` +rm -f conftest.sed + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } +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='portaudiocpp' + VERSION='12' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +install_sh=${install_sh-"$am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + +{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 +echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + +###### Top-level directory of pacpp +###### This makes it easy to shuffle the build directories +###### Also edit AC_CONFIG_SRCDIR above (wouldn't accept this variable)! +PACPP_ROOT="\$(top_srcdir)" +PORTAUDIO_ROOT="../.." + +# Various other variables and flags +DEFAULT_INCLUDES="-I$PACPP_ROOT/include -I$PACPP_ROOT/$PORTAUDIO_ROOT/include" +CFLAGS=${CFLAGS-"-g -O2 -Wall -ansi -pedantic"} +CXXFLAGS=${CXXFLAGS-"${CFLAGS}"} + +LT_VERSION_INFO="0:12:0" + +# Checks for programs + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_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" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +{ echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + + +if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + + +depcc="$CC" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + + +if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + + +if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + +# Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + +# Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } +if test "${lt_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $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 +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done + +fi + +SED=$lt_cv_path_SED +{ echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6; } + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_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 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_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 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + +{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 +echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +echo "${ECHO_T}$lt_cv_path_NM" >&6; } +NM="$lt_cv_path_NM" + +{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6; } +fi + +{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 +echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +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 +aix4* | aix5*) + 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'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | kfreebsd*-gnu | dragonfly*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 4939 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + lt_cv_cc_needs_belf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_cc_needs_belf=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-cygwin* | *-*-mingw* | *-*-pw32*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_DLLTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { echo "$as_me:$LINENO: result: $DLLTOOL" >&5 +echo "${ECHO_T}$DLLTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 +echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { echo "$as_me:$LINENO: result: $AS" >&5 +echo "${ECHO_T}$AS" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5 +echo "${ECHO_T}$ac_ct_AS" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { echo "$as_me:$LINENO: result: $OBJDUMP" >&5 +echo "${ECHO_T}$OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 +echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; + +esac + +need_locks="$enable_libtool_lock" + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +fi + + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in g77 f77 xlf frt pgf77 cf77 fort77 fl32 af77 f90 xlf90 pgf90 pghpf epcf90 gfortran g95 f95 fort xlf95 ifort ifc efc pgf95 lf95 ftn + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$F77"; then + ac_cv_prog_F77="$F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_F77="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +F77=$ac_cv_prog_F77 +if test -n "$F77"; then + { echo "$as_me:$LINENO: result: $F77" >&5 +echo "${ECHO_T}$F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$F77" && break + done +fi +if test -z "$F77"; then + ac_ct_F77=$F77 + for ac_prog in g77 f77 xlf frt pgf77 cf77 fort77 fl32 af77 f90 xlf90 pgf90 pghpf epcf90 gfortran g95 f95 fort xlf95 ifort ifc efc pgf95 lf95 ftn +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_F77"; then + ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_F77="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_F77=$ac_cv_prog_ac_ct_F77 +if test -n "$ac_ct_F77"; then + { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 +echo "${ECHO_T}$ac_ct_F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_F77" && break +done + + if test "x$ac_ct_F77" = x; then + F77="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + F77=$ac_ct_F77 + fi +fi + + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +rm -f a.out + +# If we don't use `.F' as extension, the preprocessor is not run on the +# input file. (Note that this only needs to work for GNU compilers.) +ac_save_ext=$ac_ext +ac_ext=F +{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } +if test "${ac_cv_f77_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF + program main +#ifndef __GNUC__ + choke me +#endif + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_f77_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } +ac_ext=$ac_save_ext +ac_test_FFLAGS=${FFLAGS+set} +ac_save_FFLAGS=$FFLAGS +FFLAGS= +{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 +echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_f77_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + FFLAGS=-g +cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_f77_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_prog_f77_g=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 +echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } +if test "$ac_test_FFLAGS" = set; then + FFLAGS=$ac_save_FFLAGS +elif test $ac_cv_prog_f77_g = yes; then + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-g -O2" + else + FFLAGS="-g" + fi +else + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-O2" + else + FFLAGS= + fi +fi + +G77=`test $ac_compiler_gnu = yes && echo yes` +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! + +# find the maximum length of command line arguments +{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + # 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. + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } +else + { echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6; } +fi + + + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32*) + symcode='[ABCDGISTW]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDGIRSTW]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { echo "$as_me:$LINENO: result: failed" >&5 +echo "${ECHO_T}failed" >&6; } +else + { echo "$as_me:$LINENO: result: ok" >&5 +echo "${ECHO_T}ok" >&6; } +fi + +{ echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } +if test "${lt_cv_objdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +echo "${ECHO_T}$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +enable_dlopen=no +enable_win32_dll=yes + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + +test -z "$pic_mode" && pic_mode=default + +# Check if we have a version mismatch between libtool.m4 and ltmain.sh. +# +# Note: This should be in AC_LIBTOOL_SETUP, _after_ $ltmain have been defined. +# We also should do it _before_ AC_LIBTOOL_LANG_C_CONFIG that actually +# calls AC_LIBTOOL_CONFIG and creates libtool. +# +{ echo "$as_me:$LINENO: checking for correct ltmain.sh version" >&5 +echo $ECHO_N "checking for correct ltmain.sh version... $ECHO_C" >&6; } +if test "x$ltmain" = "x" ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + { { echo "$as_me:$LINENO: error: + +*** [Gentoo] sanity check failed! *** +*** \$ltmain is not defined, please check the patch for consistency! *** +" >&5 +echo "$as_me: error: + +*** [Gentoo] sanity check failed! *** +*** \$ltmain is not defined, please check the patch for consistency! *** +" >&2;} + { (exit 1); exit 1; }; } +fi +gentoo_lt_version="1.5.22" +gentoo_ltmain_version=`sed -n '/^[ ]*VERSION=/{s/^[ ]*VERSION=//;p;q;}' "$ltmain"` +if test "x$gentoo_lt_version" != "x$gentoo_ltmain_version" ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + { { echo "$as_me:$LINENO: error: + +*** [Gentoo] sanity check failed! *** +*** libtool.m4 and ltmain.sh have a version mismatch! *** +*** (libtool.m4 = $gentoo_lt_version, ltmain.sh = $gentoo_ltmain_version) *** + +Please run: + + libtoolize --copy --force + +if appropriate, please contact the maintainer of this +package (or your distribution) for help. +" >&5 +echo "$as_me: error: + +*** [Gentoo] sanity check failed! *** +*** libtool.m4 and ltmain.sh have a version mismatch! *** +*** (libtool.m4 = $gentoo_lt_version, ltmain.sh = $gentoo_ltmain_version) *** + +Please run: + + libtoolize --copy --force + +if appropriate, please contact the maintainer of this +package (or your distribution) for help. +" >&2;} + { (exit 1); exit 1; }; } +else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +fi + + +# Use C for the default configuration in the libtool script +tagname= +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$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 +printf "$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 conftest* + + + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + +{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + printf "$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:7708: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7712: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + printf "$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:7976: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7980: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } + +if test x"$lt_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works=yes + fi + else + lt_prog_compiler_static_works=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } + +if test x"$lt_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$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:8080: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:8084: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag= + enable_shared_with_static_runtimes=no + archive_cmds= + archive_expsym_cmds= + old_archive_From_new_cmds= + old_archive_from_expsyms_cmds= + export_dynamic_flag_spec= + whole_archive_flag_spec= + thread_safe_flag_spec= + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + link_all_deplibs=unknown + hardcode_automatic=no + module_cmds= + module_expsym_cmds= + always_export_symbols=no + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms="_GLOBAL_OFFSET_TABLE_" + # 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. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix3*) + 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' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + 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 + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|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 + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld='-rpath $libdir' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + link_all_deplibs=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + openbsd*) + hardcode_direct=yes + hardcode_shlibpath_var=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + 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*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +echo "${ECHO_T}$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + 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 +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + linux*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ +cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +$echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + else + $archive_expsym_cmds="$archive_cmds" + fi + else + ld_shlibs=no + fi + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-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='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + + 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 + ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; + 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 + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-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='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || \ + test -n "$runpath_var" || \ + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&6; } + +if test "$hardcode_action" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + +striplib= +old_striplib= +{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { echo "$as_me:$LINENO: checking for shl_load" >&5 +echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } +if test "${ac_cv_func_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } +if test $ac_cv_func_shl_load = yes; then + lt_cv_dlopen="shl_load" +else + { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } +if test $ac_cv_lib_dld_shl_load = yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" +else + { echo "$as_me:$LINENO: checking for dlopen" >&5 +echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } +if test "${ac_cv_func_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dlopen + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } +if test $ac_cv_func_dlopen = yes; then + lt_cv_dlopen="dlopen" +else + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_svld_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_svld_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } +if test $ac_cv_lib_svld_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dld_dld_link=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_dld_link=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } +if test $ac_cv_lib_dld_dld_link = yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + +# Report which library types will actually be built +{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +{ echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +{ echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler \ + CC \ + LD \ + lt_prog_compiler_wl \ + lt_prog_compiler_pic \ + lt_prog_compiler_static \ + lt_prog_compiler_no_builtin_flag \ + export_dynamic_flag_spec \ + thread_safe_flag_spec \ + whole_archive_flag_spec \ + enable_shared_with_static_runtimes \ + old_archive_cmds \ + old_archive_from_new_cmds \ + predep_objects \ + postdep_objects \ + predeps \ + postdeps \ + compiler_lib_search_path \ + archive_cmds \ + archive_expsym_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + old_archive_from_expsyms_cmds \ + allow_undefined_flag \ + no_undefined_flag \ + export_symbols_cmds \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ + hardcode_automatic \ + module_cmds \ + module_expsym_cmds \ + lt_cv_prog_compiler_c_o \ + exclude_expsyms \ + include_expsyms; do + + case $var in + old_archive_cmds | \ + old_archive_from_new_cmds | \ + archive_cmds | \ + archive_expsym_cmds | \ + module_cmds | \ + module_expsym_cmds | \ + old_archive_from_expsyms_cmds | \ + export_symbols_cmds | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + { echo "$as_me:$LINENO: creating $ofile" >&5 +echo "$as_me: creating $ofile" >&6;} + + cat <<__EOF__ >> "$cfgfile" +#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU C compiler? +with_gcc=$GCC + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# ### END LIBTOOL CONFIG + +__EOF__ + + + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=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" + + +# Check whether --with-tags was given. +if test "${with_tags+set}" = set; then + withval=$with_tags; tagnames="$withval" +fi + + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} + else + { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 +echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in + "") ;; + *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 +echo "$as_me: error: invalid tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 +echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} + { (exit 1); exit 1; }; } + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$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 +printf "$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 conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +compiler_CXX=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' +else + lt_prog_compiler_no_builtin_flag_CXX= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +ld_shlibs_CXX=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + 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 + 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].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_CXX=yes + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + whole_archive_flag_spec_CXX='' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_CXX=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + ld_shlibs_CXX=no + ;; + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + gnu*) + ;; + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_CXX='+b $libdir' + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + interix3*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + ;; + linux*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + openbsd*) + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. We must also pass each convience library through + # to the system linker between allextract/defaultextract. + # The C++ compiler will combine linker options so we + # cannot just pass the convience library names through + # without $wl. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; +esac +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +GCC_CXX="$GXX" +LD_CXX="$LD" + + +cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + # The `*' in the case matches for architectures that use `case' in + # $output_verbose_cmd can trigger glob expansion during the loop + # eval without this substitution. + output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` + + for p in `eval $output_verbose_link_cmd`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" \ + || test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$rm -f confest.$objext + +# PORTME: override above test on systems where it is broken +case $host_os in +interix3*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +solaris*) + case $cc_basename in + CC*) + # 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. + postdeps_CXX='-lCstd -lCrun' + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + +lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_CXX='-qnocommon' + lt_prog_compiler_wl_CXX='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:13037: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:13041: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_CXX=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_CXX=yes + fi + else + lt_prog_compiler_static_works_CXX=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$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:13141: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:13145: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_CXX=no + else + archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + 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 +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + linux*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ +cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +$echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + else + $archive_expsym_cmds="$archive_cmds" + fi + else + ld_shlibs=no + fi + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-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='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + + 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 + ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; + 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 + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-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='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || \ + test -n "$runpath_var_CXX" || \ + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 +echo "${ECHO_T}$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_CXX \ + CC_CXX \ + LD_CXX \ + lt_prog_compiler_wl_CXX \ + lt_prog_compiler_pic_CXX \ + lt_prog_compiler_static_CXX \ + lt_prog_compiler_no_builtin_flag_CXX \ + export_dynamic_flag_spec_CXX \ + thread_safe_flag_spec_CXX \ + whole_archive_flag_spec_CXX \ + enable_shared_with_static_runtimes_CXX \ + old_archive_cmds_CXX \ + old_archive_from_new_cmds_CXX \ + predep_objects_CXX \ + postdep_objects_CXX \ + predeps_CXX \ + postdeps_CXX \ + compiler_lib_search_path_CXX \ + archive_cmds_CXX \ + archive_expsym_cmds_CXX \ + postinstall_cmds_CXX \ + postuninstall_cmds_CXX \ + old_archive_from_expsyms_cmds_CXX \ + allow_undefined_flag_CXX \ + no_undefined_flag_CXX \ + export_symbols_cmds_CXX \ + hardcode_libdir_flag_spec_CXX \ + hardcode_libdir_flag_spec_ld_CXX \ + hardcode_libdir_separator_CXX \ + hardcode_automatic_CXX \ + module_cmds_CXX \ + module_expsym_cmds_CXX \ + lt_cv_prog_compiler_c_o_CXX \ + exclude_expsyms_CXX \ + include_expsyms_CXX; do + + case $var in + old_archive_cmds_CXX | \ + old_archive_from_new_cmds_CXX | \ + archive_cmds_CXX | \ + archive_expsym_cmds_CXX | \ + module_cmds_CXX | \ + module_expsym_cmds_CXX | \ + old_archive_from_expsyms_cmds_CXX | \ + export_symbols_cmds_CXX | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_CXX + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_CXX +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_CXX + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_CXX" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=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 +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld + + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + + +archive_cmds_need_lc_F77=no +allow_undefined_flag_F77= +always_export_symbols_F77=no +archive_expsym_cmds_F77= +export_dynamic_flag_spec_F77= +hardcode_direct_F77=no +hardcode_libdir_flag_spec_F77= +hardcode_libdir_flag_spec_ld_F77= +hardcode_libdir_separator_F77= +hardcode_minus_L_F77=no +hardcode_automatic_F77=no +module_cmds_F77= +module_expsym_cmds_F77= +link_all_deplibs_F77=unknown +old_archive_cmds_F77=$old_archive_cmds +no_undefined_flag_F77= +whole_archive_flag_spec_F77= +enable_shared_with_static_runtimes_F77=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +objext_F77=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code=" subroutine t\n return\n end\n" + +# Code to be used in simple link tests +lt_simple_link_test_code=" program t\n end\n" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$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 +printf "$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 conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${F77-"f77"} +compiler=$CC +compiler_F77=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +{ echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +{ echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + +GCC_F77="$G77" +LD_F77="$LD" + +lt_prog_compiler_wl_F77= +lt_prog_compiler_pic_F77= +lt_prog_compiler_static_F77= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_static_F77='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_F77='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared_F77=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_F77=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_F77='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + else + lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_F77='-qnocommon' + lt_prog_compiler_wl_F77='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_F77='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_F77='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_F77='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-fpic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl_F77='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_F77='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl_F77='-Qoption ld ';; + *) + lt_prog_compiler_wl_F77='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl_F77='-Qoption ld ' + lt_prog_compiler_pic_F77='-PIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_F77='-Kconform_pic' + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_can_build_shared_F77=no + ;; + + uts4*) + lt_prog_compiler_pic_F77='-pic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_F77"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_F77=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_F77" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14748: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:14752: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_F77=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } + +if test x"$lt_prog_compiler_pic_works_F77" = xyes; then + case $lt_prog_compiler_pic_F77 in + "" | " "*) ;; + *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; + esac +else + lt_prog_compiler_pic_F77= + lt_prog_compiler_can_build_shared_F77=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_F77= + ;; + *) + lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_F77=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_F77=yes + fi + else + lt_prog_compiler_static_works_F77=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; } + +if test x"$lt_prog_compiler_static_works_F77" = xyes; then + : +else + lt_prog_compiler_static_F77= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_F77=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$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:14852: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:14856: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_F77=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_F77= + enable_shared_with_static_runtimes_F77=no + archive_cmds_F77= + archive_expsym_cmds_F77= + old_archive_From_new_cmds_F77= + old_archive_from_expsyms_cmds_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + thread_safe_flag_spec_F77= + hardcode_libdir_flag_spec_F77= + hardcode_libdir_flag_spec_ld_F77= + hardcode_libdir_separator_F77= + hardcode_direct_F77=no + hardcode_minus_L_F77=no + hardcode_shlibpath_var_F77=unsupported + link_all_deplibs_F77=unknown + hardcode_automatic_F77=no + module_cmds_F77= + module_expsym_cmds_F77= + always_export_symbols_F77=no + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms_F77= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" + # 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. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs_F77=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_F77='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_F77= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_F77=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs_F77=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_F77=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_F77='-L$libdir' + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=no + enable_shared_with_static_runtimes_F77=yes + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_F77=no + fi + ;; + + interix3*) + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + ld_shlibs_F77=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs_F77=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_F77=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + + if test "$ld_shlibs_F77" = no; then + runpath_var= + hardcode_libdir_flag_spec_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=yes + archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L_F77=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct_F77=unsupported + fi + ;; + + 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 + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|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 + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_F77='' + hardcode_direct_F77=yes + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_F77=yes + else + # We have old collect2 + hardcode_direct_F77=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_F77=yes + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_libdir_separator_F77= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_F77=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_F77='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_F77="-z nodefs" + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_F77=' ${wl}-bernotok' + allow_undefined_flag_F77=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_F77='$convenience' + archive_cmds_need_lc_F77=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_F77=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec_F77=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_F77=' ' + allow_undefined_flag_F77=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds_F77='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path_F77='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_F77=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_F77=no + hardcode_direct_F77=no + hardcode_automatic_F77=yes + hardcode_shlibpath_var_F77=unsupported + whole_archive_flag_spec_F77='' + link_all_deplibs_F77=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_F77=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + freebsd1*) + ld_shlibs_F77=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_direct_F77=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_F77='+b $libdir' + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + ;; + *) + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + link_all_deplibs_F77=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + newsos6) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_shlibpath_var_F77=no + ;; + + openbsd*) + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + ;; + *) + archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + allow_undefined_flag_F77=unsupported + archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec_F77='-rpath $libdir' + fi + hardcode_libdir_separator_F77=: + ;; + + solaris*) + no_undefined_flag_F77=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_shlibpath_var_F77=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs_F77=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_F77='$CC -r -o $output$reload_objs' + hardcode_direct_F77=no + ;; + motorola) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_F77=no + ;; + + sysv4.3*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + export_dynamic_flag_spec_F77='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_F77=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag_F77='${wl}-z,text' + archive_cmds_need_lc_F77=no + hardcode_shlibpath_var_F77=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_F77='${wl}-z,text' + allow_undefined_flag_F77='${wl}-z,nodefs' + archive_cmds_need_lc_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + export_dynamic_flag_spec_F77='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + *) + ld_shlibs_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 +echo "${ECHO_T}$ld_shlibs_F77" >&6; } +test "$ld_shlibs_F77" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_F77" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_F77=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_F77 in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_F77 + pic_flag=$lt_prog_compiler_pic_F77 + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_F77 + allow_undefined_flag_F77= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_F77=no + else + archive_cmds_need_lc_F77=yes + fi + allow_undefined_flag_F77=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + 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 +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + linux*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ +cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +$echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + else + $archive_expsym_cmds="$archive_cmds" + fi + else + ld_shlibs=no + fi + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-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='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + + 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 + ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; + 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 + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-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='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_F77= +if test -n "$hardcode_libdir_flag_spec_F77" || \ + test -n "$runpath_var_F77" || \ + test "X$hardcode_automatic_F77" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_F77" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && + test "$hardcode_minus_L_F77" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_F77=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_F77=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_F77=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 +echo "${ECHO_T}$hardcode_action_F77" >&6; } + +if test "$hardcode_action_F77" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_F77 \ + CC_F77 \ + LD_F77 \ + lt_prog_compiler_wl_F77 \ + lt_prog_compiler_pic_F77 \ + lt_prog_compiler_static_F77 \ + lt_prog_compiler_no_builtin_flag_F77 \ + export_dynamic_flag_spec_F77 \ + thread_safe_flag_spec_F77 \ + whole_archive_flag_spec_F77 \ + enable_shared_with_static_runtimes_F77 \ + old_archive_cmds_F77 \ + old_archive_from_new_cmds_F77 \ + predep_objects_F77 \ + postdep_objects_F77 \ + predeps_F77 \ + postdeps_F77 \ + compiler_lib_search_path_F77 \ + archive_cmds_F77 \ + archive_expsym_cmds_F77 \ + postinstall_cmds_F77 \ + postuninstall_cmds_F77 \ + old_archive_from_expsyms_cmds_F77 \ + allow_undefined_flag_F77 \ + no_undefined_flag_F77 \ + export_symbols_cmds_F77 \ + hardcode_libdir_flag_spec_F77 \ + hardcode_libdir_flag_spec_ld_F77 \ + hardcode_libdir_separator_F77 \ + hardcode_automatic_F77 \ + module_cmds_F77 \ + module_expsym_cmds_F77 \ + lt_cv_prog_compiler_c_o_F77 \ + exclude_expsyms_F77 \ + include_expsyms_F77; do + + case $var in + old_archive_cmds_F77 | \ + old_archive_from_new_cmds_F77 | \ + archive_cmds_F77 | \ + archive_expsym_cmds_F77 | \ + module_cmds_F77 | \ + module_expsym_cmds_F77 | \ + old_archive_from_expsyms_cmds_F77 | \ + export_symbols_cmds_F77 | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_F77 + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_F77 + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_F77 + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_F77 + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_F77 + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_F77 +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_F77 + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_F77 +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_F77 +archive_expsym_cmds=$lt_archive_expsym_cmds_F77 +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_F77 +module_expsym_cmds=$lt_module_expsym_cmds_F77 + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_F77 + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_F77 + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_F77 + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_F77 + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_F77 + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_F77 + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_F77 + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_F77 + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_F77 + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_F77 + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_F77" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_F77 + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_F77 + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_F77 + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_F77 + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=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" + + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +objext_GCJ=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$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 +printf "$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 conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${GCJ-"gcj"} +compiler=$CC +compiler_GCJ=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +archive_cmds_need_lc_GCJ=no + +old_archive_cmds_GCJ=$old_archive_cmds + + +lt_prog_compiler_no_builtin_flag_GCJ= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' + + +{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + printf "$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:17119: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:17123: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl_GCJ= +lt_prog_compiler_pic_GCJ= +lt_prog_compiler_static_GCJ= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_static_GCJ='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_GCJ='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared_GCJ=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_GCJ=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_GCJ='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + else + lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_GCJ='-qnocommon' + lt_prog_compiler_wl_GCJ='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_GCJ='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-fpic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl_GCJ='-Qoption ld ';; + *) + lt_prog_compiler_wl_GCJ='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl_GCJ='-Qoption ld ' + lt_prog_compiler_pic_GCJ='-PIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_GCJ='-Kconform_pic' + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_can_build_shared_GCJ=no + ;; + + uts4*) + lt_prog_compiler_pic_GCJ='-pic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_GCJ"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_GCJ=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_GCJ" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:17387: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:17391: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_GCJ=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then + case $lt_prog_compiler_pic_GCJ in + "" | " "*) ;; + *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; + esac +else + lt_prog_compiler_pic_GCJ= + lt_prog_compiler_can_build_shared_GCJ=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_GCJ= + ;; + *) + lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_GCJ=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_GCJ=yes + fi + else + lt_prog_compiler_static_works_GCJ=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then + : +else + lt_prog_compiler_static_GCJ= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_GCJ=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$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:17491: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:17495: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_GCJ=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_GCJ= + enable_shared_with_static_runtimes_GCJ=no + archive_cmds_GCJ= + archive_expsym_cmds_GCJ= + old_archive_From_new_cmds_GCJ= + old_archive_from_expsyms_cmds_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + thread_safe_flag_spec_GCJ= + hardcode_libdir_flag_spec_GCJ= + hardcode_libdir_flag_spec_ld_GCJ= + hardcode_libdir_separator_GCJ= + hardcode_direct_GCJ=no + hardcode_minus_L_GCJ=no + hardcode_shlibpath_var_GCJ=unsupported + link_all_deplibs_GCJ=unknown + hardcode_automatic_GCJ=no + module_cmds_GCJ= + module_expsym_cmds_GCJ= + always_export_symbols_GCJ=no + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms_GCJ= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" + # 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. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs_GCJ=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_GCJ= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_GCJ=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs_GCJ=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_GCJ=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_GCJ='-L$libdir' + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=no + enable_shared_with_static_runtimes_GCJ=yes + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + interix3*) + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + ld_shlibs_GCJ=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs_GCJ=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_GCJ=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + + if test "$ld_shlibs_GCJ" = no; then + runpath_var= + hardcode_libdir_flag_spec_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=yes + archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L_GCJ=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct_GCJ=unsupported + fi + ;; + + 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 + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|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 + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_GCJ='' + hardcode_direct_GCJ=yes + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_GCJ=yes + else + # We have old collect2 + hardcode_direct_GCJ=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_GCJ=yes + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_libdir_separator_GCJ= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_GCJ=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_GCJ='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_GCJ="-z nodefs" + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_GCJ=' ${wl}-bernotok' + allow_undefined_flag_GCJ=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_GCJ='$convenience' + archive_cmds_need_lc_GCJ=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_GCJ=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec_GCJ=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_GCJ=' ' + allow_undefined_flag_GCJ=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds_GCJ='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_GCJ=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_GCJ=no + hardcode_direct_GCJ=no + hardcode_automatic_GCJ=yes + hardcode_shlibpath_var_GCJ=unsupported + whole_archive_flag_spec_GCJ='' + link_all_deplibs_GCJ=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_GCJ=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + freebsd1*) + ld_shlibs_GCJ=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_direct_GCJ=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + ;; + *) + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + link_all_deplibs_GCJ=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + newsos6) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_shlibpath_var_GCJ=no + ;; + + openbsd*) + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + ;; + *) + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + allow_undefined_flag_GCJ=unsupported + archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec_GCJ='-rpath $libdir' + fi + hardcode_libdir_separator_GCJ=: + ;; + + solaris*) + no_undefined_flag_GCJ=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_shlibpath_var_GCJ=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs_GCJ=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_GCJ='$CC -r -o $output$reload_objs' + hardcode_direct_GCJ=no + ;; + motorola) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4.3*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + export_dynamic_flag_spec_GCJ='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_GCJ=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag_GCJ='${wl}-z,text' + archive_cmds_need_lc_GCJ=no + hardcode_shlibpath_var_GCJ=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_GCJ='${wl}-z,text' + allow_undefined_flag_GCJ='${wl}-z,nodefs' + archive_cmds_need_lc_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + *) + ld_shlibs_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 +echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } +test "$ld_shlibs_GCJ" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_GCJ" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_GCJ=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_GCJ in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_GCJ + pic_flag=$lt_prog_compiler_pic_GCJ + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ + allow_undefined_flag_GCJ= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_GCJ=no + else + archive_cmds_need_lc_GCJ=yes + fi + allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + 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 +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + linux*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ +cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +$echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + else + $archive_expsym_cmds="$archive_cmds" + fi + else + ld_shlibs=no + fi + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-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='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + # Handle Gentoo/FreeBSD as it was Linux + case $host_vendor in + gentoo) + version_type=linux ;; + *) + version_type=freebsd-$objformat ;; + esac + + 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 + ;; + linux) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + need_lib_prefix=no + need_version=no + ;; + 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 + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-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='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_GCJ= +if test -n "$hardcode_libdir_flag_spec_GCJ" || \ + test -n "$runpath_var_GCJ" || \ + test "X$hardcode_automatic_GCJ" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_GCJ" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && + test "$hardcode_minus_L_GCJ" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_GCJ=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_GCJ=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_GCJ=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 +echo "${ECHO_T}$hardcode_action_GCJ" >&6; } + +if test "$hardcode_action_GCJ" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_GCJ \ + CC_GCJ \ + LD_GCJ \ + lt_prog_compiler_wl_GCJ \ + lt_prog_compiler_pic_GCJ \ + lt_prog_compiler_static_GCJ \ + lt_prog_compiler_no_builtin_flag_GCJ \ + export_dynamic_flag_spec_GCJ \ + thread_safe_flag_spec_GCJ \ + whole_archive_flag_spec_GCJ \ + enable_shared_with_static_runtimes_GCJ \ + old_archive_cmds_GCJ \ + old_archive_from_new_cmds_GCJ \ + predep_objects_GCJ \ + postdep_objects_GCJ \ + predeps_GCJ \ + postdeps_GCJ \ + compiler_lib_search_path_GCJ \ + archive_cmds_GCJ \ + archive_expsym_cmds_GCJ \ + postinstall_cmds_GCJ \ + postuninstall_cmds_GCJ \ + old_archive_from_expsyms_cmds_GCJ \ + allow_undefined_flag_GCJ \ + no_undefined_flag_GCJ \ + export_symbols_cmds_GCJ \ + hardcode_libdir_flag_spec_GCJ \ + hardcode_libdir_flag_spec_ld_GCJ \ + hardcode_libdir_separator_GCJ \ + hardcode_automatic_GCJ \ + module_cmds_GCJ \ + module_expsym_cmds_GCJ \ + lt_cv_prog_compiler_c_o_GCJ \ + exclude_expsyms_GCJ \ + include_expsyms_GCJ; do + + case $var in + old_archive_cmds_GCJ | \ + old_archive_from_new_cmds_GCJ | \ + archive_cmds_GCJ | \ + archive_expsym_cmds_GCJ | \ + module_cmds_GCJ | \ + module_expsym_cmds_GCJ | \ + old_archive_from_expsyms_cmds_GCJ | \ + export_symbols_cmds_GCJ | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_GCJ + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_GCJ + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_GCJ + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_GCJ + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_GCJ + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_GCJ +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_GCJ + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_GCJ +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_GCJ +archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_GCJ +module_expsym_cmds=$lt_module_expsym_cmds_GCJ + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_GCJ + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_GCJ + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_GCJ + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_GCJ + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_GCJ + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_GCJ + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_GCJ + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_GCJ + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_GCJ + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_GCJ" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_GCJ + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_GCJ + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_GCJ + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_GCJ + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=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" + + else + tagname="" + fi + ;; + + RC) + + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +objext_RC=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$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 +printf "$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 conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${RC-"windres"} +compiler=$CC +compiler_RC=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + +lt_cv_prog_compiler_c_o_RC=yes + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_RC \ + CC_RC \ + LD_RC \ + lt_prog_compiler_wl_RC \ + lt_prog_compiler_pic_RC \ + lt_prog_compiler_static_RC \ + lt_prog_compiler_no_builtin_flag_RC \ + export_dynamic_flag_spec_RC \ + thread_safe_flag_spec_RC \ + whole_archive_flag_spec_RC \ + enable_shared_with_static_runtimes_RC \ + old_archive_cmds_RC \ + old_archive_from_new_cmds_RC \ + predep_objects_RC \ + postdep_objects_RC \ + predeps_RC \ + postdeps_RC \ + compiler_lib_search_path_RC \ + archive_cmds_RC \ + archive_expsym_cmds_RC \ + postinstall_cmds_RC \ + postuninstall_cmds_RC \ + old_archive_from_expsyms_cmds_RC \ + allow_undefined_flag_RC \ + no_undefined_flag_RC \ + export_symbols_cmds_RC \ + hardcode_libdir_flag_spec_RC \ + hardcode_libdir_flag_spec_ld_RC \ + hardcode_libdir_separator_RC \ + hardcode_automatic_RC \ + module_cmds_RC \ + module_expsym_cmds_RC \ + lt_cv_prog_compiler_c_o_RC \ + exclude_expsyms_RC \ + include_expsyms_RC; do + + case $var in + old_archive_cmds_RC | \ + old_archive_from_new_cmds_RC | \ + archive_cmds_RC | \ + archive_expsym_cmds_RC | \ + module_cmds_RC | \ + module_expsym_cmds_RC | \ + old_archive_from_expsyms_cmds_RC | \ + export_symbols_cmds_RC | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_RC + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_RC + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_RC + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_RC +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_RC + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_RC + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_RC + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_RC + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_RC + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_RC + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_RC + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_RC" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=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" + + ;; + + *) + { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 +echo "$as_me: error: Unsupported tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 +echo "$as_me: error: unable to update list of available tagged configurations." >&2;} + { (exit 1); exit 1; }; } + fi +fi + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +# Prevent multiple expansion + + + + + + + + + + + + + + + + + + + + + +# Transfer these variables to the Makefile + + + + + +ac_config_files="$ac_config_files Makefile lib/Makefile include/Makefile bin/Makefile doc/Makefile portaudiocpp.pc" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +ac_script=' +t clear +:clear +s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g +t quote +s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g +t quote +b any +:quote +s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g +s/\[/\\&/g +s/\]/\\&/g +s/\$/$$/g +H +:any +${ + g + s/^\n// + s/\n/ /g + p +} +' +DEFS=`sed -n "$ac_script" confdefs.h` + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be 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 + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +# Find out whether ``test -x'' works. Don't use a zero-byte file, as +# systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + as_executable_p="test -x" +else + as_executable_p=: +fi +rm -f conf$$.file + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by PortAudioCpp $as_me 12, which was +generated by GNU Autoconf 2.60. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +PortAudioCpp config.status 12 +configured by $0, generated by GNU Autoconf 2.60, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --he | --h | --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; + "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "portaudiocpp.pc") CONFIG_FILES="$CONFIG_FILES portaudiocpp.pc" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +CYGPATH_W!$CYGPATH_W$ac_delim +PACKAGE!$PACKAGE$ac_delim +VERSION!$VERSION$ac_delim +ACLOCAL!$ACLOCAL$ac_delim +AUTOCONF!$AUTOCONF$ac_delim +AUTOMAKE!$AUTOMAKE$ac_delim +AUTOHEADER!$AUTOHEADER$ac_delim +MAKEINFO!$MAKEINFO$ac_delim +install_sh!$install_sh$ac_delim +STRIP!$STRIP$ac_delim +INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim +mkdir_p!$mkdir_p$ac_delim +AWK!$AWK$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +am__leading_dot!$am__leading_dot$ac_delim +AMTAR!$AMTAR$ac_delim +am__tar!$am__tar$ac_delim +am__untar!$am__untar$ac_delim +MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim +MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim +MAINT!$MAINT$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +DEPDIR!$DEPDIR$ac_delim +am__include!$am__include$ac_delim +am__quote!$am__quote$ac_delim +AMDEP_TRUE!$AMDEP_TRUE$ac_delim +AMDEP_FALSE!$AMDEP_FALSE$ac_delim +AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim +CCDEPMODE!$CCDEPMODE$ac_delim +am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim +am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +CXX!$CXX$ac_delim +CXXFLAGS!$CXXFLAGS$ac_delim +ac_ct_CXX!$ac_ct_CXX$ac_delim +CXXDEPMODE!$CXXDEPMODE$ac_delim +am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim +am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +LN_S!$LN_S$ac_delim +ECHO!$ECHO$ac_delim +AR!$AR$ac_delim +RANLIB!$RANLIB$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +DLLTOOL!$DLLTOOL$ac_delim +AS!$AS$ac_delim +OBJDUMP!$OBJDUMP$ac_delim +CPP!$CPP$ac_delim +CXXCPP!$CXXCPP$ac_delim +F77!$F77$ac_delim +FFLAGS!$FFLAGS$ac_delim +ac_ct_F77!$ac_ct_F77$ac_delim +LIBTOOL!$LIBTOOL$ac_delim +DEFAULT_INCLUDES!$DEFAULT_INCLUDES$ac_delim +PORTAUDIO_ROOT!$PORTAUDIO_ROOT$ac_delim +LT_VERSION_INFO!$LT_VERSION_INFO$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 14; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/configure.ac b/tools/tracker/packages/portaudio/bindings/cpp/configure.ac new file mode 100644 index 0000000..100656a --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/configure.ac @@ -0,0 +1,54 @@ +# +# PortAudioCpp V19 autoconf input file +# Shamelessly ripped from the PortAudio one by Dominic Mazzoni +# Ludwig Schwardt +# Customized for automake by Mikael Magnusson +# + +# Require autoconf >= 2.13 +AC_PREREQ(2.13) + +m4_define([lt_current], [0]) +m4_define([lt_revision], [12]) +m4_define([lt_age], [0]) + +AC_INIT([PortAudioCpp], [12]) +AC_CONFIG_SRCDIR([include/portaudiocpp/PortAudioCpp.hxx]) +AM_INIT_AUTOMAKE +AM_MAINTAINER_MODE + +###### Top-level directory of pacpp +###### This makes it easy to shuffle the build directories +###### Also edit AC_CONFIG_SRCDIR above (wouldn't accept this variable)! +PACPP_ROOT="\$(top_srcdir)" +PORTAUDIO_ROOT="../.." + +# Various other variables and flags +DEFAULT_INCLUDES="-I$PACPP_ROOT/include -I$PACPP_ROOT/$PORTAUDIO_ROOT/include" +CFLAGS=${CFLAGS-"-g -O2 -Wall -ansi -pedantic"} +CXXFLAGS=${CXXFLAGS-"${CFLAGS}"} + +LT_VERSION_INFO="lt_current:lt_revision:lt_age" + +# Checks for programs + +AC_PROG_CC +AC_PROG_CXX +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL + +# Transfer these variables to the Makefile +AC_SUBST(DEFAULT_INCLUDES) +AC_SUBST(PORTAUDIO_ROOT) +AC_SUBST(CXXFLAGS) +AC_SUBST(LT_VERSION_INFO) + +AC_CONFIG_FILES([ + Makefile + lib/Makefile + include/Makefile + bin/Makefile + doc/Makefile + portaudiocpp.pc + ]) +AC_OUTPUT diff --git a/tools/tracker/packages/portaudio/bindings/cpp/doc/Makefile.am b/tools/tracker/packages/portaudio/bindings/cpp/doc/Makefile.am new file mode 100644 index 0000000..7eb81ba --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/doc/Makefile.am @@ -0,0 +1,5 @@ +PACPP_ROOT = . +#INCLUDES = -I$(srcdir)/$(PACPP_ROOT)/include -I$(top_srcdir)/include + +docs: + doxygen $(srcdir)/config.doxy.linux diff --git a/tools/tracker/packages/portaudio/bindings/cpp/doc/Makefile.in b/tools/tracker/packages/portaudio/bindings/cpp/doc/Makefile.in new file mode 100644 index 0000000..e9481ad --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/doc/Makefile.in @@ -0,0 +1,326 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = doc +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_INCLUDES = @DEFAULT_INCLUDES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_VERSION_INFO = @LT_VERSION_INFO@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PORTAUDIO_ROOT = @PORTAUDIO_ROOT@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +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@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +PACPP_ROOT = . +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-exec install-exec-am \ + install-info install-info-am install-man install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-info-am + +#INCLUDES = -I$(srcdir)/$(PACPP_ROOT)/include -I$(top_srcdir)/include + +docs: + doxygen $(srcdir)/config.doxy.linux +# 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/tools/tracker/packages/portaudio/bindings/cpp/doc/README b/tools/tracker/packages/portaudio/bindings/cpp/doc/README new file mode 100644 index 0000000..efeaa72 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/doc/README @@ -0,0 +1,34 @@ +GNU/Linux: +---------- + +1) Download and install a recent version of Doxygen (preferably version 1.3.3 or +later). See http://www.doxygen.org/. +2) Download and install a recent version of GraphViz. See +http://www.research.att.com/sw/tools/graphviz/. +3) Run ``doxygen config.doxy.linux'' in this directory or load and generate the file +config.doxy.linux from the Doxywizard application. Or alternatively ``make docs'' can +be run from the build/gnu folder. + +The generated html documentation will be placed in /doc/api_reference/. To open +the main page of the documentation, open the file /doc/api_reference/index.html in +an html browser. + + +Windows: +-------- + +1) Download and install a recent Doxygen (preferably version 1.3.4 or later). See +http://www.doxygen.org/. +2) Download and install a recent version of GraphViz. See +http://www.research.att.com/sw/tools/graphviz/. +3) If needed, edit the config.doxy file in an ascii text editor so that +``DOT_PATH'' variable points to the folder where GraphViz is installed. +4) Run ``doxygen config.doxy'' in this directory or load and generate the file +config.doxy from the Doxywizard application. + +The generated html documentation will be placed in /doc/api_reference/. To open +the main page of the documentation, open the file /doc/api_reference/index.html in +an html browser. + + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/doc/config.doxy b/tools/tracker/packages/portaudio/bindings/cpp/doc/config.doxy new file mode 100644 index 0000000..0bfe9d3 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/doc/config.doxy @@ -0,0 +1,211 @@ +# Doxyfile 1.3.6 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = PortAudioCpp +PROJECT_NUMBER = 2.0 +OUTPUT_DIRECTORY = ./ +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = +ALWAYS_DETAILED_SEC = YES +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +SHORT_NAMES = YES +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../source \ + ../include +FILE_PATTERNS = *.hxx \ + *.cxx +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 2 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = api_reference +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = YES +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = "c:/Program Files/ATT/Graphviz/bin/" +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/tools/tracker/packages/portaudio/bindings/cpp/doc/config.doxy.linux b/tools/tracker/packages/portaudio/bindings/cpp/doc/config.doxy.linux new file mode 100644 index 0000000..95a38ef --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/doc/config.doxy.linux @@ -0,0 +1,210 @@ +# Doxyfile 1.3.3 + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = PortAudioCpp +PROJECT_NUMBER = 2.0 +OUTPUT_DIRECTORY = ./ +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = YES +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ALWAYS_DETAILED_SEC = YES +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +SHORT_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ALIASES = +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SHOW_USED_FILES = YES +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../source \ + ../include +FILE_PATTERNS = *.hxx \ + *.cxx +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 2 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = api_reference +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +UML_LOOK = YES +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = "/usr/bin/dot" +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO +CGI_NAME = search.cgi +CGI_URL = +DOC_URL = +DOC_ABSPATH = +BIN_ABSPATH = /usr/local/bin/ +EXT_DOC_PATHS = diff --git a/tools/tracker/packages/portaudio/bindings/cpp/example/devs.cxx b/tools/tracker/packages/portaudio/bindings/cpp/example/devs.cxx new file mode 100644 index 0000000..31a560f --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/example/devs.cxx @@ -0,0 +1,177 @@ +#include +#include "portaudiocpp/PortAudioCpp.hxx" + +#ifdef WIN32 +#include "portaudiocpp/AsioDeviceAdapter.hxx" +#endif + +// --------------------------------------------------------------------------------------- + +void printSupportedStandardSampleRates( + const portaudio::DirectionSpecificStreamParameters &inputParameters, + const portaudio::DirectionSpecificStreamParameters &outputParameters) +{ + static double STANDARD_SAMPLE_RATES[] = { + 8000.0, 9600.0, 11025.0, 12000.0, 16000.0, 22050.0, 24000.0, 32000.0, + 44100.0, 48000.0, 88200.0, 96000.0, -1 }; // negative terminated list + + int printCount = 0; + + for (int i = 0; STANDARD_SAMPLE_RATES[i] > 0; ++i) + { + portaudio::StreamParameters tmp = portaudio::StreamParameters(inputParameters, outputParameters, STANDARD_SAMPLE_RATES[i], 0, paNoFlag); + + if (tmp.isSupported()) + { + if (printCount == 0) + { + std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2 + printCount = 1; + } + else if (printCount == 4) + { + std::cout << "," << std::endl; + std::cout << " " << STANDARD_SAMPLE_RATES[i]; // 8.2 + printCount = 1; + } + else + { + std::cout << ", " << STANDARD_SAMPLE_RATES[i]; // 8.2 + ++printCount; + } + } + } + + if (printCount == 0) + std::cout << "None" << std::endl; + else + std::cout << std::endl; +} + +// --------------------------------------------------------------------------------------- + +int main(int, char*[]); +int main(int, char*[]) +{ + try + { + portaudio::AutoSystem autoSys; + + portaudio::System &sys = portaudio::System::instance(); + + std::cout << "PortAudio version number = " << sys.version() << std::endl; + std::cout << "PortAudio version text = '" << sys.versionText() << "'" << std::endl; + + int numDevices = sys.deviceCount(); + std::cout << "Number of devices = " << numDevices << std::endl; + + for (portaudio::System::DeviceIterator i = sys.devicesBegin(); i != sys.devicesEnd(); ++i) + { + std::cout << "--------------------------------------- device #" << (*i).index() << std::endl; + + // Mark global and API specific default devices: + bool defaultDisplayed = false; + + if ((*i).isSystemDefaultInputDevice()) + { + std::cout << "[ Default Input"; + defaultDisplayed = true; + } + else if ((*i).isHostApiDefaultInputDevice()) + { + std::cout << "[ Default " << (*i).hostApi().name() << " Input"; + defaultDisplayed = true; + } + + if ((*i).isSystemDefaultOutputDevice()) + { + std::cout << (defaultDisplayed ? "," : "["); + std::cout << " Default Output"; + defaultDisplayed = true; + } + else if ((*i).isHostApiDefaultOutputDevice()) + { + std::cout << (defaultDisplayed ? "," : "["); + std::cout << " Default " << (*i).hostApi().name() << " Output"; + defaultDisplayed = true; + } + + if (defaultDisplayed) + std::cout << " ]" << std::endl; + + // Print device info: + std::cout << "Name = " << (*i).name() << std::endl; + std::cout << "Host API = " << (*i).hostApi().name() << std::endl; + std::cout << "Max inputs = " << (*i).maxInputChannels() << ", Max outputs = " << (*i).maxOutputChannels() << std::endl; + + std::cout << "Default low input latency = " << (*i).defaultLowInputLatency() << std::endl; // 8.3 + std::cout << "Default low output latency = " << (*i).defaultLowOutputLatency() << std::endl; // 8.3 + std::cout << "Default high input latency = " << (*i).defaultHighInputLatency() << std::endl; // 8.3 + std::cout << "Default high output latency = " << (*i).defaultHighOutputLatency() << std::endl; // 8.3 + +#ifdef WIN32 + // ASIO specific latency information: + if ((*i).hostApi().typeId() == paASIO) + { + portaudio::AsioDeviceAdapter asioDevice((*i)); + + std::cout << "ASIO minimum buffer size = " << asioDevice.minBufferSize() << std::endl; + std::cout << "ASIO maximum buffer size = " << asioDevice.maxBufferSize() << std::endl; + std::cout << "ASIO preferred buffer size = " << asioDevice.preferredBufferSize() << std::endl; + + if (asioDevice.granularity() == -1) + std::cout << "ASIO buffer granularity = power of 2" << std::endl; + else + std::cout << "ASIO buffer granularity = " << asioDevice.granularity() << std::endl; + } +#endif // WIN32 + + std::cout << "Default sample rate = " << (*i).defaultSampleRate() << std::endl; // 8.2 + + // Poll for standard sample rates: + portaudio::DirectionSpecificStreamParameters inputParameters((*i), (*i).maxInputChannels(), portaudio::INT16, true, 0.0, NULL); + portaudio::DirectionSpecificStreamParameters outputParameters((*i), (*i).maxOutputChannels(), portaudio::INT16, true, 0.0, NULL); + + if (inputParameters.numChannels() > 0) + { + std::cout << "Supported standard sample rates" << std::endl; + std::cout << " for half-duplex 16 bit " << inputParameters.numChannels() << " channel input = " << std::endl; + printSupportedStandardSampleRates(inputParameters, portaudio::DirectionSpecificStreamParameters::null()); + } + + if (outputParameters.numChannels() > 0) + { + std::cout << "Supported standard sample rates" << std::endl; + std::cout << " for half-duplex 16 bit " << outputParameters.numChannels() << " channel output = " << std::endl; + printSupportedStandardSampleRates(portaudio::DirectionSpecificStreamParameters::null(), outputParameters); + } + + if (inputParameters.numChannels() > 0 && outputParameters.numChannels() > 0) + { + std::cout << "Supported standard sample rates" << std::endl; + std::cout << " for full-duplex 16 bit " << inputParameters.numChannels() << " channel input, " << outputParameters.numChannels() << " channel output = " << std::endl; + printSupportedStandardSampleRates(inputParameters, outputParameters); + } + } + + std::cout << "----------------------------------------------" << std::endl; + } + catch (const portaudio::PaException &e) + { + std::cout << "A PortAudio error occured: " << e.paErrorText() << std::endl; + } + catch (const portaudio::PaCppException &e) + { + std::cout << "A PortAudioCpp error occured: " << e.what() << std::endl; + } + catch (const std::exception &e) + { + std::cout << "A generic exception occured: " << e.what() << std::endl; + } + catch (...) + { + std::cout << "An unknown exception occured." << std::endl; + } + + return 0; +} diff --git a/tools/tracker/packages/portaudio/bindings/cpp/example/sine.cxx b/tools/tracker/packages/portaudio/bindings/cpp/example/sine.cxx new file mode 100644 index 0000000..0676e3e --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/example/sine.cxx @@ -0,0 +1,137 @@ +// --------------------------------------------------------------------------------------- + +#include +#include +#include +#include +#include "portaudiocpp/PortAudioCpp.hxx" + +// --------------------------------------------------------------------------------------- + +// Some constants: +const int NUM_SECONDS = 5; +const double SAMPLE_RATE = 44100.0; +const int FRAMES_PER_BUFFER = 64; +const int TABLE_SIZE = 200; + +// --------------------------------------------------------------------------------------- + +// SineGenerator class: +class SineGenerator +{ +public: + SineGenerator(int tableSize) : tableSize_(tableSize), leftPhase_(0), rightPhase_(0) + { + const double PI = 3.14159265; + table_ = new float[tableSize]; + for (int i = 0; i < tableSize; ++i) + { + table_[i] = 0.125f * (float)sin(((double)i/(double)tableSize)*PI*2.); + } + } + + ~SineGenerator() + { + delete[] table_; + } + + int generate(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, + const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) + { + assert(outputBuffer != NULL); + + float **out = static_cast(outputBuffer); + + for (unsigned int i = 0; i < framesPerBuffer; ++i) + { + out[0][i] = table_[leftPhase_]; + out[1][i] = table_[rightPhase_]; + + leftPhase_ += 1; + if (leftPhase_ >= tableSize_) + leftPhase_ -= tableSize_; + + rightPhase_ += 3; + if (rightPhase_ >= tableSize_) + rightPhase_ -= tableSize_; + } + + return paContinue; + } + +private: + float *table_; + int tableSize_; + int leftPhase_; + int rightPhase_; +}; + +// --------------------------------------------------------------------------------------- + +// main: +int main(int, char *[]); +int main(int, char *[]) +{ + try + { + // Create a SineGenerator object: + SineGenerator sineGenerator(TABLE_SIZE); + + std::cout << "Setting up PortAudio..." << std::endl; + + // Set up the System: + portaudio::AutoSystem autoSys; + portaudio::System &sys = portaudio::System::instance(); + + // Set up the parameters required to open a (Callback)Stream: + portaudio::DirectionSpecificStreamParameters outParams(sys.defaultOutputDevice(), 2, portaudio::FLOAT32, false, sys.defaultOutputDevice().defaultLowOutputLatency(), NULL); + portaudio::StreamParameters params(portaudio::DirectionSpecificStreamParameters::null(), outParams, SAMPLE_RATE, FRAMES_PER_BUFFER, paClipOff); + + std::cout << "Opening stereo output stream..." << std::endl; + + // Create (and open) a new Stream, using the SineGenerator::generate function as a callback: + portaudio::MemFunCallbackStream stream(params, sineGenerator, &SineGenerator::generate); + + std::cout << "Starting playback for " << NUM_SECONDS << " seconds." << std::endl; + + // Start the Stream (audio playback starts): + stream.start(); + + // Wait for 5 seconds: + sys.sleep(NUM_SECONDS * 1000); + + std::cout << "Closing stream..." < + +#include "portaudio.h" + +#include "portaudiocpp/SampleDataFormat.hxx" + +// --------------------------------------------------------------------------------------- + +// Forward declaration(s): +namespace portaudio +{ + class System; + class HostApi; +} + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + ////// + /// @brief Class which represents a PortAudio device in the System. + /// + /// A single physical device in the system may have multiple PortAudio + /// Device representations using different HostApi 's though. A Device + /// can be half-duplex or full-duplex. A half-duplex Device can be used + /// to create a half-duplex Stream. A full-duplex Device can be used to + /// create a full-duplex Stream. If supported by the HostApi, two + /// half-duplex Devices can even be used to create a full-duplex Stream. + /// + /// Note that Device objects are very light-weight and can be passed around + /// by-value. + ////// + class Device + { + public: + // query info: name, max in channels, max out channels, + // default low/hight input/output latency, default sample rate + PaDeviceIndex index() const; + const char *name() const; + int maxInputChannels() const; + int maxOutputChannels() const; + PaTime defaultLowInputLatency() const; + PaTime defaultHighInputLatency() const; + PaTime defaultLowOutputLatency() const; + PaTime defaultHighOutputLatency() const; + double defaultSampleRate() const; + + bool isInputOnlyDevice() const; // extended + bool isOutputOnlyDevice() const; // extended + bool isFullDuplexDevice() const; // extended + bool isSystemDefaultInputDevice() const; // extended + bool isSystemDefaultOutputDevice() const; // extended + bool isHostApiDefaultInputDevice() const; // extended + bool isHostApiDefaultOutputDevice() const; // extended + + bool operator==(const Device &rhs); + bool operator!=(const Device &rhs); + + // host api reference + HostApi &hostApi(); + const HostApi &hostApi() const; + + private: + PaDeviceIndex index_; + const PaDeviceInfo *info_; + + private: + friend class System; + + explicit Device(PaDeviceIndex index); + ~Device(); + + Device(const Device &); // non-copyable + Device &operator=(const Device &); // non-copyable + }; + + // ----------------------------------------------------------------------------------- + +} // namespace portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_DEVICE_HXX + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/DirectionSpecificStreamParameters.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/DirectionSpecificStreamParameters.hxx new file mode 100644 index 0000000..bc24742 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/DirectionSpecificStreamParameters.hxx @@ -0,0 +1,77 @@ +#ifndef INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX +#define INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX + +// --------------------------------------------------------------------------------------- + +#include + +#include "portaudio.h" + +#include "portaudiocpp/System.hxx" +#include "portaudiocpp/SampleDataFormat.hxx" + +// --------------------------------------------------------------------------------------- + +// Forward declaration(s): +namespace portaudio +{ + class Device; +} + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + ////// + /// @brief All parameters for one direction (either in or out) of a Stream. Together with + /// parameters common to both directions, two DirectionSpecificStreamParameters can make up + /// a StreamParameters object which contains all parameters for a Stream. + ////// + class DirectionSpecificStreamParameters + { + public: + static DirectionSpecificStreamParameters null(); + + DirectionSpecificStreamParameters(); + DirectionSpecificStreamParameters(const Device &device, int numChannels, SampleDataFormat format, + bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo); + + // Set up methods: + void setDevice(const Device &device); + void setNumChannels(int numChannels); + + void setSampleFormat(SampleDataFormat format, bool interleaved = true); + void setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved = true); + + void setSuggestedLatency(PaTime latency); + + void setHostApiSpecificStreamInfo(void *streamInfo); + + // Accessor methods: + PaStreamParameters *paStreamParameters(); + const PaStreamParameters *paStreamParameters() const; + + Device &device() const; + int numChannels() const; + + SampleDataFormat sampleFormat() const; + bool isSampleFormatInterleaved() const; + bool isSampleFormatHostApiSpecific() const; + PaSampleFormat hostApiSpecificSampleFormat() const; + + PaTime suggestedLatency() const; + + void *hostApiSpecificStreamInfo() const; + + private: + PaStreamParameters paStreamParameters_; + }; + + +} // namespace portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Exception.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Exception.hxx new file mode 100644 index 0000000..f5249c9 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Exception.hxx @@ -0,0 +1,108 @@ +#ifndef INCLUDED_PORTAUDIO_EXCEPTION_HXX +#define INCLUDED_PORTAUDIO_EXCEPTION_HXX + +// --------------------------------------------------------------------------------------- + +#include + +#include "portaudio.h" + +// --------------------------------------------------------------------------------------- + +namespace portaudio +{ + + ////// + /// @brief Base class for all exceptions PortAudioCpp can throw. + /// + /// Class is derived from std::exception. + ////// + class Exception : public std::exception + { + public: + virtual ~Exception() throw() {} + + virtual const char *what() const throw() = 0; + }; + + // ----------------------------------------------------------------------------------- + + ////// + /// @brief Wrapper for PortAudio error codes to C++ exceptions. + /// + /// It wraps up PortAudio's error handling mechanism using + /// C++ exceptions and is derived from std::exception for + /// easy exception handling and to ease integration with + /// other code. + /// + /// To know what exceptions each function may throw, look up + /// the errors that can occure in the PortAudio documentation + /// for the equivalent functions. + /// + /// Some functions are likely to throw an exception (such as + /// Stream::open(), etc) and these should always be called in + /// try{} catch{} blocks and the thrown exceptions should be + /// handled properly (ie. the application shouldn't just abort, + /// but merely display a warning dialog to the user or something). + /// However nearly all functions in PortAudioCpp are capable + /// of throwing exceptions. When a function like Stream::isStopped() + /// throws an exception, it's such an exceptional state that it's + /// not likely that it can be recovered. PaExceptions such as these + /// can ``safely'' be left to be handled by some outer catch-all-like + /// mechanism for unrecoverable errors. + ////// + class PaException : public Exception + { + public: + explicit PaException(PaError error); + + const char *what() const throw(); + + PaError paError() const; + const char *paErrorText() const; + + bool isHostApiError() const; // extended + long lastHostApiError() const; + const char *lastHostApiErrorText() const; + + bool operator==(const PaException &rhs) const; + bool operator!=(const PaException &rhs) const; + + private: + PaError error_; + }; + + // ----------------------------------------------------------------------------------- + + ////// + /// @brief Exceptions specific to PortAudioCpp (ie. exceptions which do not have an + /// equivalent PortAudio error code). + ////// + class PaCppException : public Exception + { + public: + enum ExceptionSpecifier + { + UNABLE_TO_ADAPT_DEVICE + }; + + PaCppException(ExceptionSpecifier specifier); + + const char *what() const throw(); + + ExceptionSpecifier specifier() const; + + bool operator==(const PaCppException &rhs) const; + bool operator!=(const PaCppException &rhs) const; + + private: + ExceptionSpecifier specifier_; + }; + + +} // namespace portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_EXCEPTION_HXX + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/HostApi.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/HostApi.hxx new file mode 100644 index 0000000..ce397ca --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/HostApi.hxx @@ -0,0 +1,76 @@ +#ifndef INCLUDED_PORTAUDIO_HOSTAPI_HXX +#define INCLUDED_PORTAUDIO_HOSTAPI_HXX + +// --------------------------------------------------------------------------------------- + +#include "portaudio.h" + +#include "portaudiocpp/System.hxx" + +// --------------------------------------------------------------------------------------- + +// Forward declaration(s): +namespace portaudio +{ + class Device; +} + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + + ////// + /// @brief HostApi represents a host API (usually type of driver) in the System. + /// + /// A single System can support multiple HostApi's each one typically having + /// a set of Devices using that HostApi (usually driver type). All Devices in + /// the HostApi can be enumerated and the default input/output Device for this + /// HostApi can be retreived. + ////// + class HostApi + { + public: + typedef System::DeviceIterator DeviceIterator; + + // query info: id, name, numDevices + PaHostApiTypeId typeId() const; + PaHostApiIndex index() const; + const char *name() const; + int deviceCount() const; + + // iterate devices + DeviceIterator devicesBegin(); + DeviceIterator devicesEnd(); + + // default devices + Device &defaultInputDevice() const; + Device &defaultOutputDevice() const; + + // comparison operators + bool operator==(const HostApi &rhs) const; + bool operator!=(const HostApi &rhs) const; + + private: + const PaHostApiInfo *info_; + Device **devices_; + + private: + friend class System; + + explicit HostApi(PaHostApiIndex index); + ~HostApi(); + + HostApi(const HostApi &); // non-copyable + HostApi &operator=(const HostApi &); // non-copyable + }; + + +} + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_HOSTAPI_HXX + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/InterfaceCallbackStream.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/InterfaceCallbackStream.hxx new file mode 100644 index 0000000..5aa49e7 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/InterfaceCallbackStream.hxx @@ -0,0 +1,49 @@ +#ifndef INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX +#define INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX + +// --------------------------------------------------------------------------------------- + +#include "portaudio.h" + +#include "portaudiocpp/CallbackStream.hxx" + +// --------------------------------------------------------------------------------------- + +// Forward declaration(s) +namespace portaudio +{ + class StreamParameters; + class CallbackInterface; +} + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + + ////// + /// @brief Callback stream using an instance of an object that's derived from the CallbackInterface + /// interface. + ////// + class InterfaceCallbackStream : public CallbackStream + { + public: + InterfaceCallbackStream(); + InterfaceCallbackStream(const StreamParameters ¶meters, CallbackInterface &instance); + ~InterfaceCallbackStream(); + + void open(const StreamParameters ¶meters, CallbackInterface &instance); + + private: + InterfaceCallbackStream(const InterfaceCallbackStream &); // non-copyable + InterfaceCallbackStream &operator=(const InterfaceCallbackStream &); // non-copyable + }; + + +} // portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_INTERFACECALLBACKSTREAM_HXX diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/MemFunCallbackStream.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/MemFunCallbackStream.hxx new file mode 100644 index 0000000..01cf37b --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/MemFunCallbackStream.hxx @@ -0,0 +1,107 @@ +#ifndef INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX +#define INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX + +// --------------------------------------------------------------------------------------- + +#include "portaudio.h" + +#include "portaudiocpp/CallbackStream.hxx" +#include "portaudiocpp/CallbackInterface.hxx" +#include "portaudiocpp/StreamParameters.hxx" +#include "portaudiocpp/Exception.hxx" +#include "portaudiocpp/InterfaceCallbackStream.hxx" + +// --------------------------------------------------------------------------------------- + +namespace portaudio +{ + + + ////// + /// @brief Callback stream using a class's member function as a callback. Template argument T is the type of the + /// class of which a member function is going to be used. + /// + /// Example usage: + /// @verbatim MemFunCallback stream = MemFunCallbackStream(parameters, *this, &MyClass::myCallbackFunction); @endverbatim + ////// + template + class MemFunCallbackStream : public CallbackStream + { + public: + typedef int (T::*CallbackFunPtr)(const void *, void *, unsigned long, const PaStreamCallbackTimeInfo *, + PaStreamCallbackFlags); + + // ------------------------------------------------------------------------------- + + MemFunCallbackStream() + { + } + + MemFunCallbackStream(const StreamParameters ¶meters, T &instance, CallbackFunPtr memFun) : adapter_(instance, memFun) + { + open(parameters); + } + + ~MemFunCallbackStream() + { + close(); + } + + void open(const StreamParameters ¶meters, T &instance, CallbackFunPtr memFun) + { + // XXX: need to check if already open? + + adapter_.init(instance, memFun); + open(parameters); + } + + private: + MemFunCallbackStream(const MemFunCallbackStream &); // non-copyable + MemFunCallbackStream &operator=(const MemFunCallbackStream &); // non-copyable + + ////// + /// @brief Inner class which adapts a member function callback to a CallbackInterface compliant + /// class (so it can be adapted using the paCallbackAdapter function). + ////// + class MemFunToCallbackInterfaceAdapter : public CallbackInterface + { + public: + MemFunToCallbackInterfaceAdapter() {} + MemFunToCallbackInterfaceAdapter(T &instance, CallbackFunPtr memFun) : instance_(&instance), memFun_(memFun) {} + + void init(T &instance, CallbackFunPtr memFun) + { + instance_ = &instance; + memFun_ = memFun; + } + + int paCallbackFun(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, + const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags) + { + return (instance_->*memFun_)(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags); + } + + private: + T *instance_; + CallbackFunPtr memFun_; + }; + + MemFunToCallbackInterfaceAdapter adapter_; + + void open(const StreamParameters ¶meters) + { + PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), + parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, + static_cast(&adapter_)); + + if (err != paNoError) + throw PaException(err); + } + }; + + +} // portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_MEMFUNCALLBACKSTREAM_HXX diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/PortAudioCpp.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/PortAudioCpp.hxx new file mode 100644 index 0000000..96df96e --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/PortAudioCpp.hxx @@ -0,0 +1,109 @@ +#ifndef INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX +#define INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX + +// --------------------------------------------------------------------------------------- + +////// +/// @mainpage PortAudioCpp +/// +///

PortAudioCpp - A Native C++ Binding of PortAudio V19

+///

PortAudio

+///

+/// PortAudio is a portable and mature C API for accessing audio hardware. It offers both callback-based and blocking +/// style input and output, deals with sample data format conversions, dithering and much more. There are a large number +/// of implementations available for various platforms including Windows MME, Windows DirectX, Windows and MacOS (Classic) +/// ASIO, MacOS Classic SoundManager, MacOS X CoreAudio, OSS (Linux), Linux ALSA, JACK (MacOS X and Linux) and SGI Irix +/// AL. Note that, currently not all of these implementations are equally complete or up-to-date (as PortAudio V19 is +/// still in development). Because PortAudio has a C API, it can easily be called from a variety of other programming +/// languages. +///

+///

PortAudioCpp

+///

+/// Although, it is possible to use PortAudio's C API from within a C++ program, this is usually a little awkward +/// as procedural and object-oriented paradigms need to be mixed. PortAudioCpp aims to resolve this by encapsulating +/// PortAudio's C API to form an equivalent object-oriented C++ API. It provides a more natural integration of PortAudio +/// into C++ programs as well as a more structured interface. PortAudio's concepts were preserved as much as possible and +/// no additional features were added except for some `convenience methods'. +///

+///

+/// PortAudioCpp's main features are: +///

    +///
  • Structured object model.
  • +///
  • C++ exception handling instead of C-style error return codes.
  • +///
  • Handling of callbacks using free functions (C and C++), static functions, member functions or instances of classes +/// derived from a given interface.
  • +///
  • STL compliant iterators to host APIs and devices.
  • +///
  • Some additional convenience functions to more easily set up and use PortAudio.
  • +///
+///

+///

+/// PortAudioCpp requires a recent version of the PortAudio V19 source code. This can be obtained from CVS or as a snapshot +/// from the website. The examples also require the ASIO 2 SDK which can be obtained from the Steinberg website. Alternatively, the +/// examples can easily be modified to compile without needing ASIO. +///

+///

+/// Supported platforms: +///

    +///
  • Microsoft Visual C++ 6.0, 7.0 (.NET 2002) and 7.1 (.NET 2003).
  • +///
  • GNU G++ 2.95 and G++ 3.3.
  • +///
+/// Other platforms should be easily supported as PortAudioCpp is platform-independent and (reasonably) C++ standard compliant. +///

+///

+/// This documentation mainly provides information specific to PortAudioCpp. For a more complete explaination of all of the +/// concepts used, please consult the PortAudio documentation. +///

+///

+/// PortAudioCpp was developed by Merlijn Blaauw with many great suggestions and help from Ross Bencina. Ludwig Schwardt provided +/// GNU/Linux build files and checked G++ compatibility. PortAudioCpp may be used under the same licensing, conditions and +/// warranty as PortAudio. See the PortAudio license for more details. +///

+///

Links

+///

+/// Official PortAudio site.
+///

+////// + +// --------------------------------------------------------------------------------------- + +////// +/// @namespace portaudio +/// +/// To avoid name collision, everything in PortAudioCpp is in the portaudio +/// namespace. If this name is too long it's usually pretty safe to use an +/// alias like ``namespace pa = portaudio;''. +////// + +// --------------------------------------------------------------------------------------- + +////// +/// @file PortAudioCpp.hxx +/// An include-all header file (for lazy programmers and using pre-compiled headers). +////// + +// --------------------------------------------------------------------------------------- + +#include "portaudio.h" + +#include "portaudiocpp/AutoSystem.hxx" +#include "portaudiocpp/BlockingStream.hxx" +#include "portaudiocpp/CallbackInterface.hxx" +#include "portaudiocpp/CallbackStream.hxx" +#include "portaudiocpp/CFunCallbackStream.hxx" +#include "portaudiocpp/CppFunCallbackStream.hxx" +#include "portaudiocpp/Device.hxx" +#include "portaudiocpp/Exception.hxx" +#include "portaudiocpp/HostApi.hxx" +#include "portaudiocpp/InterfaceCallbackStream.hxx" +#include "portaudiocpp/MemFunCallbackStream.hxx" +#include "portaudiocpp/SampleDataFormat.hxx" +#include "portaudiocpp/DirectionSpecificStreamParameters.hxx" +#include "portaudiocpp/Stream.hxx" +#include "portaudiocpp/StreamParameters.hxx" +#include "portaudiocpp/System.hxx" +#include "portaudiocpp/SystemDeviceIterator.hxx" +#include "portaudiocpp/SystemHostApiIterator.hxx" + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SampleDataFormat.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SampleDataFormat.hxx new file mode 100644 index 0000000..1d3a1d9 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SampleDataFormat.hxx @@ -0,0 +1,35 @@ +#ifndef INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX +#define INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX + +// --------------------------------------------------------------------------------------- + +#include "portaudio.h" + +// --------------------------------------------------------------------------------------- + +namespace portaudio +{ + + + ////// + /// @brief PortAudio sample data formats. + /// + /// Small helper enum to wrap the PortAudio defines. + ////// + enum SampleDataFormat + { + INVALID_FORMAT = 0, + FLOAT32 = paFloat32, + INT32 = paInt32, + INT24 = paInt24, + INT16 = paInt16, + INT8 = paInt8, + UINT8 = paUInt8 + }; + + +} // namespace portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_SAMPLEDATAFORMAT_HXX diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Stream.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Stream.hxx new file mode 100644 index 0000000..1aed747 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/Stream.hxx @@ -0,0 +1,82 @@ +#ifndef INCLUDED_PORTAUDIO_STREAM_HXX +#define INCLUDED_PORTAUDIO_STREAM_HXX + +#include "portaudio.h" + +// --------------------------------------------------------------------------------------- + +// Forward declaration(s): +namespace portaudio +{ + class StreamParameters; +} + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + + ////// + /// @brief A Stream represents an active or inactive input and/or output data + /// stream in the System. + /// + /// Concrete Stream classes should ensure themselves being in a closed state at + /// destruction (i.e. by calling their own close() method in their deconstructor). + /// Following good C++ programming practices, care must be taken to ensure no + /// exceptions are thrown by the deconstructor of these classes. As a consequence, + /// clients need to explicitly call close() to ensure the stream closed successfully. + /// + /// The Stream object can be used to manipulate the Stream's state. Also, time-constant + /// and time-varying information about the Stream can be retreived. + ////// + class Stream + { + public: + // Opening/closing: + virtual ~Stream(); + + virtual void close(); + bool isOpen() const; + + // Additional set up: + void setStreamFinishedCallback(PaStreamFinishedCallback *callback); + + // State management: + void start(); + void stop(); + void abort(); + + bool isStopped() const; + bool isActive() const; + + // Stream info (time-constant, but might become time-variant soon): + PaTime inputLatency() const; + PaTime outputLatency() const; + double sampleRate() const; + + // Stream info (time-varying): + PaTime time() const; + + // Accessors for PortAudio PaStream, useful for interfacing + // with PortAudio add-ons (such as PortMixer) for instance: + const PaStream *paStream() const; + PaStream *paStream(); + + protected: + Stream(); // abstract class + + PaStream *stream_; + + private: + Stream(const Stream &); // non-copyable + Stream &operator=(const Stream &); // non-copyable + }; + + +} // namespace portaudio + + +#endif // INCLUDED_PORTAUDIO_STREAM_HXX + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/StreamParameters.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/StreamParameters.hxx new file mode 100644 index 0000000..c0ec9a9 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/StreamParameters.hxx @@ -0,0 +1,77 @@ +#ifndef INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX +#define INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX + +// --------------------------------------------------------------------------------------- + +#include "portaudio.h" + +#include "portaudiocpp/DirectionSpecificStreamParameters.hxx" + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + ////// + /// @brief The entire set of parameters needed to configure and open + /// a Stream. + /// + /// It contains parameters of input, output and shared parameters. + /// Using the isSupported() method, the StreamParameters can be + /// checked if opening a Stream using this StreamParameters would + /// succeed or not. Accessors are provided to higher-level parameters + /// aswell as the lower-level parameters which are mainly intended for + /// internal use. + ////// + class StreamParameters + { + public: + StreamParameters(); + StreamParameters(const DirectionSpecificStreamParameters &inputParameters, + const DirectionSpecificStreamParameters &outputParameters, double sampleRate, + unsigned long framesPerBuffer, PaStreamFlags flags); + + // Set up for direction-specific: + void setInputParameters(const DirectionSpecificStreamParameters ¶meters); + void setOutputParameters(const DirectionSpecificStreamParameters ¶meters); + + // Set up for common parameters: + void setSampleRate(double sampleRate); + void setFramesPerBuffer(unsigned long framesPerBuffer); + void setFlag(PaStreamFlags flag); + void unsetFlag(PaStreamFlags flag); + void clearFlags(); + + // Validation: + bool isSupported() const; + + // Accessors (direction-specific): + DirectionSpecificStreamParameters &inputParameters(); + const DirectionSpecificStreamParameters &inputParameters() const; + DirectionSpecificStreamParameters &outputParameters(); + const DirectionSpecificStreamParameters &outputParameters() const; + + // Accessors (common): + double sampleRate() const; + unsigned long framesPerBuffer() const; + PaStreamFlags flags() const; + bool isFlagSet(PaStreamFlags flag) const; + + private: + // Half-duplex specific parameters: + DirectionSpecificStreamParameters inputParameters_; + DirectionSpecificStreamParameters outputParameters_; + + // Common parameters: + double sampleRate_; + unsigned long framesPerBuffer_; + PaStreamFlags flags_; + }; + + +} // namespace portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_STREAMPARAMETERS_HXX diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/System.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/System.hxx new file mode 100644 index 0000000..d5ff9dd --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/System.hxx @@ -0,0 +1,107 @@ +#ifndef INCLUDED_PORTAUDIO_SYSTEM_HXX +#define INCLUDED_PORTAUDIO_SYSTEM_HXX + +// --------------------------------------------------------------------------------------- + +#include "portaudio.h" + +// --------------------------------------------------------------------------------------- + +// Forward declaration(s): +namespace portaudio +{ + class Device; + class Stream; + class HostApi; +} + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + + ////// + /// @brief System singleton which represents the PortAudio system. + /// + /// The System is used to initialize/terminate PortAudio and provide + /// a single acccess point to the PortAudio System (instance()). + /// It can be used to iterate through all HostApi 's in the System as + /// well as all devices in the System. It also provides some utility + /// functionality of PortAudio. + /// + /// Terminating the System will also abort and close the open streams. + /// The Stream objects will need to be deallocated by the client though + /// (it's usually a good idea to have them cleaned up automatically). + ////// + class System + { + public: + class HostApiIterator; // forward declaration + class DeviceIterator; // forward declaration + + // ------------------------------------------------------------------------------- + + static int version(); + static const char *versionText(); + + static void initialize(); + static void terminate(); + + static System &instance(); + static bool exists(); + + // ------------------------------------------------------------------------------- + + // host apis: + HostApiIterator hostApisBegin(); + HostApiIterator hostApisEnd(); + + HostApi &defaultHostApi(); + + HostApi &hostApiByTypeId(PaHostApiTypeId type); + HostApi &hostApiByIndex(PaHostApiIndex index); + + int hostApiCount(); + + // ------------------------------------------------------------------------------- + + // devices: + DeviceIterator devicesBegin(); + DeviceIterator devicesEnd(); + + Device &defaultInputDevice(); + Device &defaultOutputDevice(); + + Device &deviceByIndex(PaDeviceIndex index); + + int deviceCount(); + + static Device &nullDevice(); + + // ------------------------------------------------------------------------------- + + // misc: + void sleep(long msec); + int sizeOfSample(PaSampleFormat format); + + private: + System(); + ~System(); + + static System *instance_; + static int initCount_; + + static HostApi **hostApis_; + static Device **devices_; + + static Device *nullDevice_; + }; + + +} // namespace portaudio + + +#endif // INCLUDED_PORTAUDIO_SYSTEM_HXX + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SystemDeviceIterator.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SystemDeviceIterator.hxx new file mode 100644 index 0000000..5b4077f --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SystemDeviceIterator.hxx @@ -0,0 +1,66 @@ +#ifndef INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX +#define INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX + +// --------------------------------------------------------------------------------------- + +#include +#include + +#include "portaudiocpp/System.hxx" + +// --------------------------------------------------------------------------------------- + +// Forward declaration(s): +namespace portaudio +{ + class Device; + class HostApi; +} + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + + ////// + /// @brief Iterator class for iterating through all Devices in a System. + /// + /// Devices will be iterated by iterating all Devices in each + /// HostApi in the System. Compliant with the STL bidirectional + /// iterator concept. + ////// + class System::DeviceIterator + { + public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef Device value_type; + typedef ptrdiff_t difference_type; + typedef Device * pointer; + typedef Device & reference; + + Device &operator*() const; + Device *operator->() const; + + DeviceIterator &operator++(); + DeviceIterator operator++(int); + DeviceIterator &operator--(); + DeviceIterator operator--(int); + + bool operator==(const DeviceIterator &rhs); + bool operator!=(const DeviceIterator &rhs); + + private: + friend class System; + friend class HostApi; + Device **ptr_; + }; + + +} // namespace portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_SYSTEMDEVICEITERATOR_HXX + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SystemHostApiIterator.hxx b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SystemHostApiIterator.hxx new file mode 100644 index 0000000..8b1ffdf --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/include/portaudiocpp/SystemHostApiIterator.hxx @@ -0,0 +1,61 @@ +#ifndef INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX +#define INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX + +// --------------------------------------------------------------------------------------- + +#include +#include + +#include "portaudiocpp/System.hxx" + +// --------------------------------------------------------------------------------------- + +// Forward declaration(s): +namespace portaudio +{ + class HostApi; +} + +// --------------------------------------------------------------------------------------- + +// Declaration(s): +namespace portaudio +{ + + + ////// + /// @brief Iterator class for iterating through all HostApis in a System. + /// + /// Compliant with the STL bidirectional iterator concept. + ////// + class System::HostApiIterator + { + public: + typedef std::bidirectional_iterator_tag iterator_category; + typedef Device value_type; + typedef ptrdiff_t difference_type; + typedef HostApi * pointer; + typedef HostApi & reference; + + HostApi &operator*() const; + HostApi *operator->() const; + + HostApiIterator &operator++(); + HostApiIterator operator++(int); + HostApiIterator &operator--(); + HostApiIterator operator--(int); + + bool operator==(const HostApiIterator &rhs); + bool operator!=(const HostApiIterator &rhs); + + private: + friend class System; + HostApi **ptr_; + }; + + +} // namespace portaudio + +// --------------------------------------------------------------------------------------- + +#endif // INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX diff --git a/tools/tracker/packages/portaudio/bindings/cpp/lib/Makefile.am b/tools/tracker/packages/portaudio/bindings/cpp/lib/Makefile.am new file mode 100644 index 0000000..a27f7c5 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/lib/Makefile.am @@ -0,0 +1,26 @@ +SRCDIR = $(top_srcdir)/source/portaudiocpp + +lib_LTLIBRARIES = libportaudiocpp.la + +LDADD = libportaudiocpp.la + +libportaudiocpp_la_LDFLAGS = -version-info $(LT_VERSION_INFO) -no-undefined + +libportaudiocpp_la_LIBADD = $(top_builddir)/$(PORTAUDIO_ROOT)/lib/libportaudio.la +libportaudiocpp_la_SOURCES = \ + $(SRCDIR)/BlockingStream.cxx \ + $(SRCDIR)/CallbackInterface.cxx \ + $(SRCDIR)/CallbackStream.cxx \ + $(SRCDIR)/CFunCallbackStream.cxx \ + $(SRCDIR)/CppFunCallbackStream.cxx \ + $(SRCDIR)/Device.cxx \ + $(SRCDIR)/DirectionSpecificStreamParameters.cxx \ + $(SRCDIR)/Exception.cxx \ + $(SRCDIR)/HostApi.cxx \ + $(SRCDIR)/InterfaceCallbackStream.cxx \ + $(SRCDIR)/MemFunCallbackStream.cxx \ + $(SRCDIR)/Stream.cxx \ + $(SRCDIR)/StreamParameters.cxx \ + $(SRCDIR)/System.cxx \ + $(SRCDIR)/SystemDeviceIterator.cxx \ + $(SRCDIR)/SystemHostApiIterator.cxx diff --git a/tools/tracker/packages/portaudio/bindings/cpp/lib/Makefile.in b/tools/tracker/packages/portaudio/bindings/cpp/lib/Makefile.in new file mode 100644 index 0000000..11be8c1 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/lib/Makefile.in @@ -0,0 +1,615 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 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@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = lib +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(libdir)" +libLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(lib_LTLIBRARIES) +libportaudiocpp_la_DEPENDENCIES = \ + $(top_builddir)/$(PORTAUDIO_ROOT)/lib/libportaudio.la +am_libportaudiocpp_la_OBJECTS = BlockingStream.lo CallbackInterface.lo \ + CallbackStream.lo CFunCallbackStream.lo \ + CppFunCallbackStream.lo Device.lo \ + DirectionSpecificStreamParameters.lo Exception.lo HostApi.lo \ + InterfaceCallbackStream.lo MemFunCallbackStream.lo Stream.lo \ + StreamParameters.lo System.lo SystemDeviceIterator.lo \ + SystemHostApiIterator.lo +libportaudiocpp_la_OBJECTS = $(am_libportaudiocpp_la_OBJECTS) +depcomp = $(SHELL) $(top_srcdir)/../../depcomp +am__depfiles_maybe = depfiles +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(libportaudiocpp_la_SOURCES) +DIST_SOURCES = $(libportaudiocpp_la_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULT_INCLUDES = @DEFAULT_INCLUDES@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_VERSION_INFO = @LT_VERSION_INFO@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PORTAUDIO_ROOT = @PORTAUDIO_ROOT@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +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@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +SRCDIR = $(top_srcdir)/source/portaudiocpp +lib_LTLIBRARIES = libportaudiocpp.la +LDADD = libportaudiocpp.la +libportaudiocpp_la_LDFLAGS = -version-info $(LT_VERSION_INFO) -no-undefined +libportaudiocpp_la_LIBADD = $(top_builddir)/$(PORTAUDIO_ROOT)/lib/libportaudio.la +libportaudiocpp_la_SOURCES = \ + $(SRCDIR)/BlockingStream.cxx \ + $(SRCDIR)/CallbackInterface.cxx \ + $(SRCDIR)/CallbackStream.cxx \ + $(SRCDIR)/CFunCallbackStream.cxx \ + $(SRCDIR)/CppFunCallbackStream.cxx \ + $(SRCDIR)/Device.cxx \ + $(SRCDIR)/DirectionSpecificStreamParameters.cxx \ + $(SRCDIR)/Exception.cxx \ + $(SRCDIR)/HostApi.cxx \ + $(SRCDIR)/InterfaceCallbackStream.cxx \ + $(SRCDIR)/MemFunCallbackStream.cxx \ + $(SRCDIR)/Stream.cxx \ + $(SRCDIR)/StreamParameters.cxx \ + $(SRCDIR)/System.cxx \ + $(SRCDIR)/SystemDeviceIterator.cxx \ + $(SRCDIR)/SystemHostApiIterator.cxx + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cxx .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu lib/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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + else :; fi; \ + done + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libportaudiocpp.la: $(libportaudiocpp_la_OBJECTS) $(libportaudiocpp_la_DEPENDENCIES) + $(CXXLINK) -rpath $(libdir) $(libportaudiocpp_la_LDFLAGS) $(libportaudiocpp_la_OBJECTS) $(libportaudiocpp_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BlockingStream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CFunCallbackStream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CallbackInterface.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CallbackStream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CppFunCallbackStream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Device.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DirectionSpecificStreamParameters.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Exception.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HostApi.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InterfaceCallbackStream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MemFunCallbackStream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Stream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StreamParameters.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/System.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemDeviceIterator.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemHostApiIterator.Plo@am__quote@ + +.cxx.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cxx.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cxx.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +BlockingStream.lo: $(SRCDIR)/BlockingStream.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BlockingStream.lo -MD -MP -MF "$(DEPDIR)/BlockingStream.Tpo" -c -o BlockingStream.lo `test -f '$(SRCDIR)/BlockingStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/BlockingStream.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/BlockingStream.Tpo" "$(DEPDIR)/BlockingStream.Plo"; else rm -f "$(DEPDIR)/BlockingStream.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/BlockingStream.cxx' object='BlockingStream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BlockingStream.lo `test -f '$(SRCDIR)/BlockingStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/BlockingStream.cxx + +CallbackInterface.lo: $(SRCDIR)/CallbackInterface.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CallbackInterface.lo -MD -MP -MF "$(DEPDIR)/CallbackInterface.Tpo" -c -o CallbackInterface.lo `test -f '$(SRCDIR)/CallbackInterface.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackInterface.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/CallbackInterface.Tpo" "$(DEPDIR)/CallbackInterface.Plo"; else rm -f "$(DEPDIR)/CallbackInterface.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/CallbackInterface.cxx' object='CallbackInterface.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CallbackInterface.lo `test -f '$(SRCDIR)/CallbackInterface.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackInterface.cxx + +CallbackStream.lo: $(SRCDIR)/CallbackStream.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CallbackStream.lo -MD -MP -MF "$(DEPDIR)/CallbackStream.Tpo" -c -o CallbackStream.lo `test -f '$(SRCDIR)/CallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackStream.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/CallbackStream.Tpo" "$(DEPDIR)/CallbackStream.Plo"; else rm -f "$(DEPDIR)/CallbackStream.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/CallbackStream.cxx' object='CallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CallbackStream.lo `test -f '$(SRCDIR)/CallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CallbackStream.cxx + +CFunCallbackStream.lo: $(SRCDIR)/CFunCallbackStream.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CFunCallbackStream.lo -MD -MP -MF "$(DEPDIR)/CFunCallbackStream.Tpo" -c -o CFunCallbackStream.lo `test -f '$(SRCDIR)/CFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CFunCallbackStream.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/CFunCallbackStream.Tpo" "$(DEPDIR)/CFunCallbackStream.Plo"; else rm -f "$(DEPDIR)/CFunCallbackStream.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/CFunCallbackStream.cxx' object='CFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CFunCallbackStream.lo `test -f '$(SRCDIR)/CFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CFunCallbackStream.cxx + +CppFunCallbackStream.lo: $(SRCDIR)/CppFunCallbackStream.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CppFunCallbackStream.lo -MD -MP -MF "$(DEPDIR)/CppFunCallbackStream.Tpo" -c -o CppFunCallbackStream.lo `test -f '$(SRCDIR)/CppFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CppFunCallbackStream.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/CppFunCallbackStream.Tpo" "$(DEPDIR)/CppFunCallbackStream.Plo"; else rm -f "$(DEPDIR)/CppFunCallbackStream.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/CppFunCallbackStream.cxx' object='CppFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CppFunCallbackStream.lo `test -f '$(SRCDIR)/CppFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/CppFunCallbackStream.cxx + +Device.lo: $(SRCDIR)/Device.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Device.lo -MD -MP -MF "$(DEPDIR)/Device.Tpo" -c -o Device.lo `test -f '$(SRCDIR)/Device.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Device.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/Device.Tpo" "$(DEPDIR)/Device.Plo"; else rm -f "$(DEPDIR)/Device.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/Device.cxx' object='Device.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Device.lo `test -f '$(SRCDIR)/Device.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Device.cxx + +DirectionSpecificStreamParameters.lo: $(SRCDIR)/DirectionSpecificStreamParameters.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DirectionSpecificStreamParameters.lo -MD -MP -MF "$(DEPDIR)/DirectionSpecificStreamParameters.Tpo" -c -o DirectionSpecificStreamParameters.lo `test -f '$(SRCDIR)/DirectionSpecificStreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/DirectionSpecificStreamParameters.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/DirectionSpecificStreamParameters.Tpo" "$(DEPDIR)/DirectionSpecificStreamParameters.Plo"; else rm -f "$(DEPDIR)/DirectionSpecificStreamParameters.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/DirectionSpecificStreamParameters.cxx' object='DirectionSpecificStreamParameters.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DirectionSpecificStreamParameters.lo `test -f '$(SRCDIR)/DirectionSpecificStreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/DirectionSpecificStreamParameters.cxx + +Exception.lo: $(SRCDIR)/Exception.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Exception.lo -MD -MP -MF "$(DEPDIR)/Exception.Tpo" -c -o Exception.lo `test -f '$(SRCDIR)/Exception.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Exception.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/Exception.Tpo" "$(DEPDIR)/Exception.Plo"; else rm -f "$(DEPDIR)/Exception.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/Exception.cxx' object='Exception.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Exception.lo `test -f '$(SRCDIR)/Exception.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Exception.cxx + +HostApi.lo: $(SRCDIR)/HostApi.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT HostApi.lo -MD -MP -MF "$(DEPDIR)/HostApi.Tpo" -c -o HostApi.lo `test -f '$(SRCDIR)/HostApi.cxx' || echo '$(srcdir)/'`$(SRCDIR)/HostApi.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/HostApi.Tpo" "$(DEPDIR)/HostApi.Plo"; else rm -f "$(DEPDIR)/HostApi.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/HostApi.cxx' object='HostApi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o HostApi.lo `test -f '$(SRCDIR)/HostApi.cxx' || echo '$(srcdir)/'`$(SRCDIR)/HostApi.cxx + +InterfaceCallbackStream.lo: $(SRCDIR)/InterfaceCallbackStream.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InterfaceCallbackStream.lo -MD -MP -MF "$(DEPDIR)/InterfaceCallbackStream.Tpo" -c -o InterfaceCallbackStream.lo `test -f '$(SRCDIR)/InterfaceCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/InterfaceCallbackStream.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/InterfaceCallbackStream.Tpo" "$(DEPDIR)/InterfaceCallbackStream.Plo"; else rm -f "$(DEPDIR)/InterfaceCallbackStream.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/InterfaceCallbackStream.cxx' object='InterfaceCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InterfaceCallbackStream.lo `test -f '$(SRCDIR)/InterfaceCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/InterfaceCallbackStream.cxx + +MemFunCallbackStream.lo: $(SRCDIR)/MemFunCallbackStream.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT MemFunCallbackStream.lo -MD -MP -MF "$(DEPDIR)/MemFunCallbackStream.Tpo" -c -o MemFunCallbackStream.lo `test -f '$(SRCDIR)/MemFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/MemFunCallbackStream.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/MemFunCallbackStream.Tpo" "$(DEPDIR)/MemFunCallbackStream.Plo"; else rm -f "$(DEPDIR)/MemFunCallbackStream.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/MemFunCallbackStream.cxx' object='MemFunCallbackStream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o MemFunCallbackStream.lo `test -f '$(SRCDIR)/MemFunCallbackStream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/MemFunCallbackStream.cxx + +Stream.lo: $(SRCDIR)/Stream.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Stream.lo -MD -MP -MF "$(DEPDIR)/Stream.Tpo" -c -o Stream.lo `test -f '$(SRCDIR)/Stream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Stream.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/Stream.Tpo" "$(DEPDIR)/Stream.Plo"; else rm -f "$(DEPDIR)/Stream.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/Stream.cxx' object='Stream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Stream.lo `test -f '$(SRCDIR)/Stream.cxx' || echo '$(srcdir)/'`$(SRCDIR)/Stream.cxx + +StreamParameters.lo: $(SRCDIR)/StreamParameters.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StreamParameters.lo -MD -MP -MF "$(DEPDIR)/StreamParameters.Tpo" -c -o StreamParameters.lo `test -f '$(SRCDIR)/StreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/StreamParameters.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/StreamParameters.Tpo" "$(DEPDIR)/StreamParameters.Plo"; else rm -f "$(DEPDIR)/StreamParameters.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/StreamParameters.cxx' object='StreamParameters.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StreamParameters.lo `test -f '$(SRCDIR)/StreamParameters.cxx' || echo '$(srcdir)/'`$(SRCDIR)/StreamParameters.cxx + +System.lo: $(SRCDIR)/System.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT System.lo -MD -MP -MF "$(DEPDIR)/System.Tpo" -c -o System.lo `test -f '$(SRCDIR)/System.cxx' || echo '$(srcdir)/'`$(SRCDIR)/System.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/System.Tpo" "$(DEPDIR)/System.Plo"; else rm -f "$(DEPDIR)/System.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/System.cxx' object='System.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o System.lo `test -f '$(SRCDIR)/System.cxx' || echo '$(srcdir)/'`$(SRCDIR)/System.cxx + +SystemDeviceIterator.lo: $(SRCDIR)/SystemDeviceIterator.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SystemDeviceIterator.lo -MD -MP -MF "$(DEPDIR)/SystemDeviceIterator.Tpo" -c -o SystemDeviceIterator.lo `test -f '$(SRCDIR)/SystemDeviceIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemDeviceIterator.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/SystemDeviceIterator.Tpo" "$(DEPDIR)/SystemDeviceIterator.Plo"; else rm -f "$(DEPDIR)/SystemDeviceIterator.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/SystemDeviceIterator.cxx' object='SystemDeviceIterator.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SystemDeviceIterator.lo `test -f '$(SRCDIR)/SystemDeviceIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemDeviceIterator.cxx + +SystemHostApiIterator.lo: $(SRCDIR)/SystemHostApiIterator.cxx +@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SystemHostApiIterator.lo -MD -MP -MF "$(DEPDIR)/SystemHostApiIterator.Tpo" -c -o SystemHostApiIterator.lo `test -f '$(SRCDIR)/SystemHostApiIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemHostApiIterator.cxx; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/SystemHostApiIterator.Tpo" "$(DEPDIR)/SystemHostApiIterator.Plo"; else rm -f "$(DEPDIR)/SystemHostApiIterator.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(SRCDIR)/SystemHostApiIterator.cxx' object='SystemHostApiIterator.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SystemHostApiIterator.lo `test -f '$(SRCDIR)/SystemHostApiIterator.cxx' || echo '$(srcdir)/'`$(SRCDIR)/SystemHostApiIterator.cxx + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(libdir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: install-libLTLIBRARIES + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am \ + install-libLTLIBRARIES install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am \ + uninstall-libLTLIBRARIES + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/tools/tracker/packages/portaudio/bindings/cpp/portaudiocpp.pc.in b/tools/tracker/packages/portaudio/bindings/cpp/portaudiocpp.pc.in new file mode 100644 index 0000000..8b126d1 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/portaudiocpp.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: PortAudioCpp +Description: Portable audio I/O C++ bindings +Version: 12 +Requires: portaudio-2.0 + +Libs: -L${libdir} -lportaudiocpp +Cflags: -I${includedir} diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx new file mode 100644 index 0000000..3efc100 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx @@ -0,0 +1,83 @@ +#include "portaudiocpp/AsioDeviceAdapter.hxx" + +#include "portaudio.h" +#include "pa_asio.h" + +#include "portaudiocpp/Device.hxx" +#include "portaudiocpp/HostApi.hxx" +#include "portaudiocpp/Exception.hxx" + +namespace portaudio +{ + AsioDeviceAdapter::AsioDeviceAdapter(Device &device) + { + if (device.hostApi().typeId() != paASIO) + throw PaCppException(PaCppException::UNABLE_TO_ADAPT_DEVICE); + + device_ = &device; + + PaError err = PaAsio_GetAvailableLatencyValues(device_->index(), &minBufferSize_, &maxBufferSize_, + &preferredBufferSize_, &granularity_); + + if (err != paNoError) + throw PaException(err); + + } + + Device &AsioDeviceAdapter::device() + { + return *device_; + } + + long AsioDeviceAdapter::minBufferSize() const + { + return minBufferSize_; + } + + long AsioDeviceAdapter::maxBufferSize() const + { + return maxBufferSize_; + } + + long AsioDeviceAdapter::preferredBufferSize() const + { + return preferredBufferSize_; + } + + long AsioDeviceAdapter::granularity() const + { + return granularity_; + } + + void AsioDeviceAdapter::showControlPanel(void *systemSpecific) + { + PaError err = PaAsio_ShowControlPanel(device_->index(), systemSpecific); + + if (err != paNoError) + throw PaException(err); + } + + const char *AsioDeviceAdapter::inputChannelName(int channelIndex) const + { + const char *channelName; + PaError err = PaAsio_GetInputChannelName(device_->index(), channelIndex, &channelName); + + if (err != paNoError) + throw PaException(err); + + return channelName; + } + + const char *AsioDeviceAdapter::outputChannelName(int channelIndex) const + { + const char *channelName; + PaError err = PaAsio_GetOutputChannelName(device_->index(), channelIndex, &channelName); + + if (err != paNoError) + throw PaException(err); + + return channelName; + } +} + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/BlockingStream.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/BlockingStream.cxx new file mode 100644 index 0000000..b26b9e8 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/BlockingStream.cxx @@ -0,0 +1,100 @@ +#include "portaudiocpp/BlockingStream.hxx" + +#include "portaudio.h" + +#include "portaudiocpp/StreamParameters.hxx" +#include "portaudiocpp/Exception.hxx" + +namespace portaudio +{ + + // -------------------------------------------------------------------------------------- + + BlockingStream::BlockingStream() + { + } + + BlockingStream::BlockingStream(const StreamParameters ¶meters) + { + open(parameters); + } + + BlockingStream::~BlockingStream() + { + try + { + close(); + } + catch (...) + { + // ignore all errors + } + } + + // -------------------------------------------------------------------------------------- + + void BlockingStream::open(const StreamParameters ¶meters) + { + PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), + parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), NULL, NULL); + + if (err != paNoError) + { + throw PaException(err); + } + } + + // -------------------------------------------------------------------------------------- + + void BlockingStream::read(void *buffer, unsigned long numFrames) + { + PaError err = Pa_ReadStream(stream_, buffer, numFrames); + + if (err != paNoError) + { + throw PaException(err); + } + } + + void BlockingStream::write(const void *buffer, unsigned long numFrames) + { + PaError err = Pa_WriteStream(stream_, buffer, numFrames); + + if (err != paNoError) + { + throw PaException(err); + } + } + + // -------------------------------------------------------------------------------------- + + signed long BlockingStream::availableReadSize() const + { + signed long avail = Pa_GetStreamReadAvailable(stream_); + + if (avail < 0) + { + throw PaException(avail); + } + + return avail; + } + + signed long BlockingStream::availableWriteSize() const + { + signed long avail = Pa_GetStreamWriteAvailable(stream_); + + if (avail < 0) + { + throw PaException(avail); + } + + return avail; + } + + // -------------------------------------------------------------------------------------- + +} // portaudio + + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CFunCallbackStream.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CFunCallbackStream.cxx new file mode 100644 index 0000000..9cceda9 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CFunCallbackStream.cxx @@ -0,0 +1,41 @@ +#include "portaudiocpp/CFunCallbackStream.hxx" + +#include "portaudiocpp/StreamParameters.hxx" +#include "portaudiocpp/Exception.hxx" + +namespace portaudio +{ + CFunCallbackStream::CFunCallbackStream() + { + } + + CFunCallbackStream::CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData) + { + open(parameters, funPtr, userData); + } + + CFunCallbackStream::~CFunCallbackStream() + { + try + { + close(); + } + catch (...) + { + // ignore all errors + } + } + + // ---------------------------------------------------------------------------------== + + void CFunCallbackStream::open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData) + { + PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), + parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), funPtr, userData); + + if (err != paNoError) + { + throw PaException(err); + } + } +} diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CallbackInterface.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CallbackInterface.cxx new file mode 100644 index 0000000..0137261 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CallbackInterface.cxx @@ -0,0 +1,25 @@ +#include "portaudiocpp/CallbackInterface.hxx" + +namespace portaudio +{ + + namespace impl + { + + ////// + /// Adapts any CallbackInterface object to a C-callable function (ie this function). A + /// pointer to the object should be passed as ``userData'' when setting up the callback. + ////// + int callbackInterfaceToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, + const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData) + { + CallbackInterface *cb = static_cast(userData); + return cb->paCallbackFun(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags); + } + + + } // namespace impl + +} // namespace portaudio + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CallbackStream.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CallbackStream.cxx new file mode 100644 index 0000000..b6c8e1d --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CallbackStream.cxx @@ -0,0 +1,20 @@ +#include "portaudiocpp/CallbackStream.hxx" + +namespace portaudio +{ + CallbackStream::CallbackStream() + { + } + + CallbackStream::~CallbackStream() + { + } + + // ----------------------------------------------------------------------------------- + + double CallbackStream::cpuLoad() const + { + return Pa_GetStreamCpuLoad(stream_); + } + +} // namespace portaudio diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CppFunCallbackStream.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CppFunCallbackStream.cxx new file mode 100644 index 0000000..fe0b4ab --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/CppFunCallbackStream.cxx @@ -0,0 +1,81 @@ +#include "portaudiocpp/CppFunCallbackStream.hxx" + +#include "portaudiocpp/StreamParameters.hxx" +#include "portaudiocpp/Exception.hxx" + +namespace portaudio +{ + namespace impl + { + ////// + /// Adapts any a C++ callback to a C-callable function (ie this function). A + /// pointer to a struct with the C++ function pointer and the actual user data should be + /// passed as the ``userData'' parameter when setting up the callback. + ////// + int cppCallbackToPaCallbackAdapter(const void *inputBuffer, void *outputBuffer, unsigned long numFrames, + const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData) + { + FunCallbackStream::CppToCCallbackData *data = static_cast(userData); + return data->funPtr(inputBuffer, outputBuffer, numFrames, timeInfo, statusFlags, data->userData); + } + } + + // ----------------------------------------------------------------------------------- + + FunCallbackStream::CppToCCallbackData::CppToCCallbackData() + { + } + + FunCallbackStream::CppToCCallbackData::CppToCCallbackData(CallbackFunPtr funPtr, void *userData) : funPtr(funPtr), userData(userData) + { + } + + void FunCallbackStream::CppToCCallbackData::init(CallbackFunPtr funPtr, void *userData) + { + this->funPtr = funPtr; + this->userData = userData; + } + + // ----------------------------------------------------------------------------------- + + FunCallbackStream::FunCallbackStream() + { + } + + FunCallbackStream::FunCallbackStream(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData) : adapterData_(funPtr, userData) + { + open(parameters); + } + + FunCallbackStream::~FunCallbackStream() + { + try + { + close(); + } + catch (...) + { + // ignore all errors + } + } + + void FunCallbackStream::open(const StreamParameters ¶meters, CallbackFunPtr funPtr, void *userData) + { + adapterData_.init(funPtr, userData); + open(parameters); + } + + void FunCallbackStream::open(const StreamParameters ¶meters) + { + PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), + parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::cppCallbackToPaCallbackAdapter, + static_cast(&adapterData_)); + + if (err != paNoError) + { + throw PaException(err); + } + } + + // ----------------------------------------------------------------------------------- +} diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Device.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Device.cxx new file mode 100644 index 0000000..369e8c2 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Device.cxx @@ -0,0 +1,168 @@ +#include "portaudiocpp/Device.hxx" + +#include + +#include "portaudiocpp/HostApi.hxx" +#include "portaudiocpp/System.hxx" +#include "portaudiocpp/Exception.hxx" + +namespace portaudio +{ + + // ------------------------------------------------------------------------------- + + Device::Device(PaDeviceIndex index) : index_(index) + { + if (index == paNoDevice) + info_ = NULL; + else + info_ = Pa_GetDeviceInfo(index); + } + + Device::~Device() + { + } + + PaDeviceIndex Device::index() const + { + return index_; + } + + const char *Device::name() const + { + if (info_ == NULL) + return ""; + + return info_->name; + } + + int Device::maxInputChannels() const + { + if (info_ == NULL) + return 0; + + return info_->maxInputChannels; + } + + int Device::maxOutputChannels() const + { + if (info_ == NULL) + return 0; + + return info_->maxOutputChannels; + } + + PaTime Device::defaultLowInputLatency() const + { + if (info_ == NULL) + return static_cast(0.0); + + return info_->defaultLowInputLatency; + } + + PaTime Device::defaultHighInputLatency() const + { + if (info_ == NULL) + return static_cast(0.0); + + return info_->defaultHighInputLatency; + } + + PaTime Device::defaultLowOutputLatency() const + { + if (info_ == NULL) + return static_cast(0.0); + + return info_->defaultLowOutputLatency; + } + + PaTime Device::defaultHighOutputLatency() const + { + if (info_ == NULL) + return static_cast(0.0); + + return info_->defaultHighOutputLatency; + } + + double Device::defaultSampleRate() const + { + if (info_ == NULL) + return 0.0; + + return info_->defaultSampleRate; + } + + // ------------------------------------------------------------------------------- + + bool Device::isInputOnlyDevice() const + { + return (maxOutputChannels() == 0); + } + + bool Device::isOutputOnlyDevice() const + { + return (maxInputChannels() == 0); + } + + bool Device::isFullDuplexDevice() const + { + return (maxInputChannels() > 0 && maxOutputChannels() > 0); + } + + bool Device::isSystemDefaultInputDevice() const + { + return (System::instance().defaultInputDevice() == *this); + } + + bool Device::isSystemDefaultOutputDevice() const + { + return (System::instance().defaultOutputDevice() == *this); + } + + bool Device::isHostApiDefaultInputDevice() const + { + return (hostApi().defaultInputDevice() == *this); + } + + bool Device::isHostApiDefaultOutputDevice() const + { + return (hostApi().defaultOutputDevice() == *this); + } + + // ------------------------------------------------------------------------------- + + bool Device::operator==(const Device &rhs) + { + return (index_ == rhs.index_); + } + + bool Device::operator!=(const Device &rhs) + { + return !(*this == rhs); + } + + // ------------------------------------------------------------------------------- + + HostApi &Device::hostApi() + { + // NOTE: will cause an exception when called for the null device + if (info_ == NULL) + throw PaException(paInternalError); + + return System::instance().hostApiByIndex(info_->hostApi); + } + + const HostApi &Device::hostApi() const + { + // NOTE; will cause an exception when called for the null device + if (info_ == NULL) + throw PaException(paInternalError); + + return System::instance().hostApiByIndex(info_->hostApi); + } + + // ------------------------------------------------------------------------------- + +} // namespace portaudio + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/DirectionSpecificStreamParameters.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/DirectionSpecificStreamParameters.cxx new file mode 100644 index 0000000..68453d0 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/DirectionSpecificStreamParameters.cxx @@ -0,0 +1,163 @@ +#include "portaudiocpp/DirectionSpecificStreamParameters.hxx" + +#include "portaudiocpp/Device.hxx" + +namespace portaudio +{ + + // ----------------------------------------------------------------------------------- + + ////// + /// Returns a `nil' DirectionSpecificStreamParameters object. This can be used to + /// specify that one direction of a Stream is not required (i.e. when creating + /// a half-duplex Stream). All fields of the null DirectionSpecificStreamParameters + /// object are invalid except for the device and the number of channel, which are set + /// to paNoDevice and 0 respectively. + ////// + DirectionSpecificStreamParameters DirectionSpecificStreamParameters::null() + { + DirectionSpecificStreamParameters tmp; + tmp.paStreamParameters_.device = paNoDevice; + tmp.paStreamParameters_.channelCount = 0; + return tmp; + } + + // ----------------------------------------------------------------------------------- + + ////// + /// Default constructor -- all parameters will be uninitialized. + ////// + DirectionSpecificStreamParameters::DirectionSpecificStreamParameters() + { + } + + ////// + /// Constructor which sets all required fields. + ////// + DirectionSpecificStreamParameters::DirectionSpecificStreamParameters(const Device &device, int numChannels, + SampleDataFormat format, bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo) + { + setDevice(device); + setNumChannels(numChannels); + setSampleFormat(format, interleaved); + setSuggestedLatency(suggestedLatency); + setHostApiSpecificStreamInfo(hostApiSpecificStreamInfo); + } + + // ----------------------------------------------------------------------------------- + + void DirectionSpecificStreamParameters::setDevice(const Device &device) + { + paStreamParameters_.device = device.index(); + } + + void DirectionSpecificStreamParameters::setNumChannels(int numChannels) + { + paStreamParameters_.channelCount = numChannels; + } + + void DirectionSpecificStreamParameters::setSampleFormat(SampleDataFormat format, bool interleaved) + { + paStreamParameters_.sampleFormat = static_cast(format); + + if (!interleaved) + paStreamParameters_.sampleFormat |= paNonInterleaved; + } + + void DirectionSpecificStreamParameters::setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved) + { + paStreamParameters_.sampleFormat = format; + + paStreamParameters_.sampleFormat |= paCustomFormat; + + if (!interleaved) + paStreamParameters_.sampleFormat |= paNonInterleaved; + } + + void DirectionSpecificStreamParameters::setSuggestedLatency(PaTime latency) + { + paStreamParameters_.suggestedLatency = latency; + } + + void DirectionSpecificStreamParameters::setHostApiSpecificStreamInfo(void *streamInfo) + { + paStreamParameters_.hostApiSpecificStreamInfo = streamInfo; + } + + // ----------------------------------------------------------------------------------- + + PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters() + { + if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice) + return &paStreamParameters_; + else + return NULL; + } + + const PaStreamParameters *DirectionSpecificStreamParameters::paStreamParameters() const + { + if (paStreamParameters_.channelCount > 0 && paStreamParameters_.device != paNoDevice) + return &paStreamParameters_; + else + return NULL; + } + + Device &DirectionSpecificStreamParameters::device() const + { + return System::instance().deviceByIndex(paStreamParameters_.device); + } + + int DirectionSpecificStreamParameters::numChannels() const + { + return paStreamParameters_.channelCount; + } + + ////// + /// Returns the (non host api-specific) sample format, without including + /// the paNonInterleaved flag. If the sample format is host api-spefific, + /// INVALID_FORMAT (0) will be returned. + ////// + SampleDataFormat DirectionSpecificStreamParameters::sampleFormat() const + { + if (isSampleFormatHostApiSpecific()) + return INVALID_FORMAT; + else + return static_cast(paStreamParameters_.sampleFormat & ~paNonInterleaved); + } + + bool DirectionSpecificStreamParameters::isSampleFormatInterleaved() const + { + return ((paStreamParameters_.sampleFormat & paNonInterleaved) == 0); + } + + bool DirectionSpecificStreamParameters::isSampleFormatHostApiSpecific() const + { + return ((paStreamParameters_.sampleFormat & paCustomFormat) == 0); + } + + ////// + /// Returns the host api-specific sample format, without including any + /// paCustomFormat or paNonInterleaved flags. Will return 0 if the sample format is + /// not host api-specific. + ////// + PaSampleFormat DirectionSpecificStreamParameters::hostApiSpecificSampleFormat() const + { + if (isSampleFormatHostApiSpecific()) + return paStreamParameters_.sampleFormat & ~paCustomFormat & ~paNonInterleaved; + else + return 0; + } + + PaTime DirectionSpecificStreamParameters::suggestedLatency() const + { + return paStreamParameters_.suggestedLatency; + } + + void *DirectionSpecificStreamParameters::hostApiSpecificStreamInfo() const + { + return paStreamParameters_.hostApiSpecificStreamInfo; + } + + // ----------------------------------------------------------------------------------- + +} // namespace portaudio diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Exception.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Exception.cxx new file mode 100644 index 0000000..98945c8 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Exception.cxx @@ -0,0 +1,123 @@ +#include "portaudiocpp/Exception.hxx" + +namespace portaudio +{ + // ----------------------------------------------------------------------------------- + // PaException: + // ----------------------------------------------------------------------------------- + + ////// + /// Wraps a PortAudio error into a PortAudioCpp PaException. + ////// + PaException::PaException(PaError error) : error_(error) + { + } + + // ----------------------------------------------------------------------------------- + + ////// + /// Alias for paErrorText(), to have std::exception compliance. + ////// + const char *PaException::what() const throw() + { + return paErrorText(); + } + + // ----------------------------------------------------------------------------------- + + ////// + /// Returns the PortAudio error code (PaError). + ////// + PaError PaException::paError() const + { + return error_; + } + + ////// + /// Returns the error as a (zero-terminated) text string. + ////// + const char *PaException::paErrorText() const + { + return Pa_GetErrorText(error_); + } + + ////// + /// Returns true is the error is a HostApi error. + ////// + bool PaException::isHostApiError() const + { + return (error_ == paUnanticipatedHostError); + } + + ////// + /// Returns the last HostApi error (which is the current one if + /// isHostApiError() returns true) as an error code. + ////// + long PaException::lastHostApiError() const + { + return Pa_GetLastHostErrorInfo()->errorCode; + } + + ////// + /// Returns the last HostApi error (which is the current one if + /// isHostApiError() returns true) as a (zero-terminated) text + /// string, if it's available. + ////// + const char *PaException::lastHostApiErrorText() const + { + return Pa_GetLastHostErrorInfo()->errorText; + } + + // ----------------------------------------------------------------------------------- + + bool PaException::operator==(const PaException &rhs) const + { + return (error_ == rhs.error_); + } + + bool PaException::operator!=(const PaException &rhs) const + { + return !(*this == rhs); + } + + // ----------------------------------------------------------------------------------- + // PaCppException: + // ----------------------------------------------------------------------------------- + + PaCppException::PaCppException(ExceptionSpecifier specifier) : specifier_(specifier) + { + } + + const char *PaCppException::what() const throw() + { + switch (specifier_) + { + case UNABLE_TO_ADAPT_DEVICE: + { + return "Unable to adapt the given device to the specified host api specific device extension"; + } + } + + return "Unknown exception"; + } + + PaCppException::ExceptionSpecifier PaCppException::specifier() const + { + return specifier_; + } + + bool PaCppException::operator==(const PaCppException &rhs) const + { + return (specifier_ == rhs.specifier_); + } + + bool PaCppException::operator!=(const PaCppException &rhs) const + { + return !(*this == rhs); + } + + // ----------------------------------------------------------------------------------- + +} // namespace portaudio + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/HostApi.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/HostApi.cxx new file mode 100644 index 0000000..6a09670 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/HostApi.cxx @@ -0,0 +1,121 @@ +#include "portaudiocpp/HostApi.hxx" + +#include "portaudiocpp/System.hxx" +#include "portaudiocpp/Device.hxx" +#include "portaudiocpp/SystemDeviceIterator.hxx" +#include "portaudiocpp/Exception.hxx" + +namespace portaudio +{ + + // ----------------------------------------------------------------------------------- + + HostApi::HostApi(PaHostApiIndex index) : devices_(NULL) + { + try + { + info_ = Pa_GetHostApiInfo(index); + + // Create and populate devices array: + int numDevices = deviceCount(); + + devices_ = new Device*[numDevices]; + + for (int i = 0; i < numDevices; ++i) + { + PaDeviceIndex deviceIndex = Pa_HostApiDeviceIndexToDeviceIndex(index, i); + + if (deviceIndex < 0) + { + throw PaException(deviceIndex); + } + + devices_[i] = &System::instance().deviceByIndex(deviceIndex); + } + } + catch (const std::exception &e) + { + // Delete any (partially) constructed objects (deconstructor isn't called): + delete[] devices_; // devices_ is either NULL or valid + + // Re-throw exception: + throw e; + } + } + + HostApi::~HostApi() + { + // Destroy devices array: + delete[] devices_; + } + + // ----------------------------------------------------------------------------------- + + PaHostApiTypeId HostApi::typeId() const + { + return info_->type; + } + + PaHostApiIndex HostApi::index() const + { + PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(typeId()); + + if (index < 0) + throw PaException(index); + + return index; + } + + const char *HostApi::name() const + { + return info_->name; + } + + int HostApi::deviceCount() const + { + return info_->deviceCount; + } + + // ----------------------------------------------------------------------------------- + + HostApi::DeviceIterator HostApi::devicesBegin() + { + DeviceIterator tmp; + tmp.ptr_ = &devices_[0]; // begin (first element) + return tmp; + } + + HostApi::DeviceIterator HostApi::devicesEnd() + { + DeviceIterator tmp; + tmp.ptr_ = &devices_[deviceCount()]; // end (one past last element) + return tmp; + } + + // ----------------------------------------------------------------------------------- + + Device &HostApi::defaultInputDevice() const + { + return System::instance().deviceByIndex(info_->defaultInputDevice); + } + + Device &HostApi::defaultOutputDevice() const + { + return System::instance().deviceByIndex(info_->defaultOutputDevice); + } + + // ----------------------------------------------------------------------------------- + + bool HostApi::operator==(const HostApi &rhs) const + { + return (typeId() == rhs.typeId()); + } + + bool HostApi::operator!=(const HostApi &rhs) const + { + return !(*this == rhs); + } + + // ----------------------------------------------------------------------------------- + +} // namespace portaudio diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx new file mode 100644 index 0000000..5433fa3 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx @@ -0,0 +1,45 @@ +#include "portaudiocpp/InterfaceCallbackStream.hxx" + +#include "portaudiocpp/StreamParameters.hxx" +#include "portaudiocpp/Exception.hxx" +#include "portaudiocpp/CallbackInterface.hxx" + +namespace portaudio +{ + + // ---------------------------------------------------------------------------------== + + InterfaceCallbackStream::InterfaceCallbackStream() + { + } + + InterfaceCallbackStream::InterfaceCallbackStream(const StreamParameters ¶meters, CallbackInterface &instance) + { + open(parameters, instance); + } + + InterfaceCallbackStream::~InterfaceCallbackStream() + { + try + { + close(); + } + catch (...) + { + // ignore all errors + } + } + + // ---------------------------------------------------------------------------------== + + void InterfaceCallbackStream::open(const StreamParameters ¶meters, CallbackInterface &instance) + { + PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), + parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, static_cast(&instance)); + + if (err != paNoError) + { + throw PaException(err); + } + } +} diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/MemFunCallbackStream.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/MemFunCallbackStream.cxx new file mode 100644 index 0000000..5141de2 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/MemFunCallbackStream.cxx @@ -0,0 +1,4 @@ +#include "portaudiocpp/MemFunCallbackStream.hxx" + +// (... template class ...) + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Stream.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Stream.cxx new file mode 100644 index 0000000..ba16e03 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/Stream.cxx @@ -0,0 +1,195 @@ +#include "portaudiocpp/Stream.hxx" + +#include + +#include "portaudiocpp/Exception.hxx" +#include "portaudiocpp/System.hxx" + +namespace portaudio +{ + + // ----------------------------------------------------------------------------------- + + Stream::Stream() : stream_(NULL) + { + } + + Stream::~Stream() + { + // (can't call close here, + // the derived class should atleast call + // close() in it's deconstructor) + } + + // ----------------------------------------------------------------------------------- + + ////// + /// Closes the Stream if it's open, else does nothing. + ////// + void Stream::close() + { + if (isOpen() && System::exists()) + { + PaError err = Pa_CloseStream(stream_); + stream_ = NULL; + + if (err != paNoError) + throw PaException(err); + } + } + + ////// + /// Returns true if the Stream is open. + ////// + bool Stream::isOpen() const + { + return (stream_ != NULL); + } + + // ----------------------------------------------------------------------------------- + + void Stream::setStreamFinishedCallback(PaStreamFinishedCallback *callback) + { + PaError err = Pa_SetStreamFinishedCallback(stream_, callback); + + if (err != paNoError) + throw PaException(err); + } + + // ----------------------------------------------------------------------------------- + + void Stream::start() + { + PaError err = Pa_StartStream(stream_); + + if (err != paNoError) + throw PaException(err); + } + + void Stream::stop() + { + PaError err = Pa_StopStream(stream_); + + if (err != paNoError) + throw PaException(err); + } + + void Stream::abort() + { + PaError err = Pa_AbortStream(stream_); + + if (err != paNoError) + throw PaException(err); + } + + bool Stream::isStopped() const + { + PaError ret = Pa_IsStreamStopped(stream_); + + if (ret < 0) + throw PaException(ret); + + return (ret == 1); + } + + bool Stream::isActive() const + { + PaError ret = Pa_IsStreamActive(stream_); + + if (ret < 0) + throw PaException(ret); + + return (ret == 1); + } + + // ----------------------------------------------------------------------------------- + + ////// + /// Returns the best known input latency for the Stream. This value may differ from the + /// suggested input latency set in the StreamParameters. Includes all sources of + /// latency known to PortAudio such as internal buffering, and Host API reported latency. + /// Doesn't include any estimates of unknown latency. + ////// + PaTime Stream::inputLatency() const + { + const PaStreamInfo *info = Pa_GetStreamInfo(stream_); + if (info == NULL) + { + throw PaException(paInternalError); + return PaTime(0.0); + } + + return info->inputLatency; + } + + ////// + /// Returns the best known output latency for the Stream. This value may differ from the + /// suggested output latency set in the StreamParameters. Includes all sources of + /// latency known to PortAudio such as internal buffering, and Host API reported latency. + /// Doesn't include any estimates of unknown latency. + ////// + PaTime Stream::outputLatency() const + { + const PaStreamInfo *info = Pa_GetStreamInfo(stream_); + if (info == NULL) + { + throw PaException(paInternalError); + return PaTime(0.0); + } + + return info->outputLatency; + } + + ////// + /// Returns the sample rate of the Stream. Usually this will be the + /// best known estimate of the used sample rate. For instance when opening a + /// Stream setting 44100.0 Hz in the StreamParameters, the actual sample + /// rate might be something like 44103.2 Hz (due to imperfections in the + /// sound card hardware). + ////// + double Stream::sampleRate() const + { + const PaStreamInfo *info = Pa_GetStreamInfo(stream_); + if (info == NULL) + { + throw PaException(paInternalError); + return 0.0; + } + + return info->sampleRate; + } + + // ----------------------------------------------------------------------------------- + + PaTime Stream::time() const + { + return Pa_GetStreamTime(stream_); + } + + // ----------------------------------------------------------------------------------- + + ////// + /// Accessor (const) for PortAudio PaStream pointer, useful for interfacing with + /// PortAudio add-ons such as PortMixer for instance. Normally accessing this + /// pointer should not be needed as PortAudioCpp aims to provide all of PortAudio's + /// functionality. + ////// + const PaStream *Stream::paStream() const + { + return stream_; + } + + ////// + /// Accessor (non-const) for PortAudio PaStream pointer, useful for interfacing with + /// PortAudio add-ons such as PortMixer for instance. Normally accessing this + /// pointer should not be needed as PortAudioCpp aims to provide all of PortAudio's + /// functionality. + ////// + PaStream *Stream::paStream() + { + return stream_; + } + + // ----------------------------------------------------------------------------------- + +} // namespace portaudio diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/StreamParameters.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/StreamParameters.cxx new file mode 100644 index 0000000..5b9e897 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/StreamParameters.cxx @@ -0,0 +1,165 @@ +#include "portaudiocpp/StreamParameters.hxx" + +#include + +#include "portaudiocpp/Device.hxx" + +namespace portaudio +{ + // ----------------------------------------------------------------------------------- + + ////// + /// Default constructor; does nothing. + ////// + StreamParameters::StreamParameters() + { + } + + ////// + /// Sets up the all parameters needed to open either a half-duplex or full-duplex Stream. + /// + /// @param inputParameters The parameters for the input direction of the to-be opened + /// Stream or DirectionSpecificStreamParameters::null() for an output-only Stream. + /// @param outputParameters The parameters for the output direction of the to-be opened + /// Stream or DirectionSpecificStreamParameters::null() for an input-only Stream. + /// @param sampleRate The to-be opened Stream's sample rate in Hz. + /// @param framesPerBuffer The number of frames per buffer for a CallbackStream, or + /// the preferred buffer granularity for a BlockingStream. + /// @param flags The flags for the to-be opened Stream; default paNoFlag. + ////// + StreamParameters::StreamParameters(const DirectionSpecificStreamParameters &inputParameters, + const DirectionSpecificStreamParameters &outputParameters, double sampleRate, unsigned long framesPerBuffer, + PaStreamFlags flags) : inputParameters_(inputParameters), outputParameters_(outputParameters), + sampleRate_(sampleRate), framesPerBuffer_(framesPerBuffer), flags_(flags) + { + } + + // ----------------------------------------------------------------------------------- + + ////// + /// Sets the requested sample rate. If this sample rate isn't supported by the hardware, the + /// Stream will fail to open. The real-life sample rate used might differ slightly due to + /// imperfections in the sound card hardware; use Stream::sampleRate() to retreive the + /// best known estimate for this value. + ////// + void StreamParameters::setSampleRate(double sampleRate) + { + sampleRate_ = sampleRate; + } + + ////// + /// Either the number of frames per buffer for a CallbackStream, or + /// the preferred buffer granularity for a BlockingStream. See PortAudio + /// documentation. + ////// + void StreamParameters::setFramesPerBuffer(unsigned long framesPerBuffer) + { + framesPerBuffer_ = framesPerBuffer; + } + + ////// + /// Sets the specified flag or does nothing when the flag is already set. Doesn't + /// `unset' any previously existing flags (use clearFlags() for that). + ////// + void StreamParameters::setFlag(PaStreamFlags flag) + { + flags_ |= flag; + } + + ////// + /// Unsets the specified flag or does nothing if the flag isn't set. Doesn't affect + /// any other flags. + ////// + void StreamParameters::unsetFlag(PaStreamFlags flag) + { + flags_ &= ~flag; + } + + ////// + /// Clears or `unsets' all set flags. + ////// + void StreamParameters::clearFlags() + { + flags_ = paNoFlag; + } + + // ----------------------------------------------------------------------------------- + + void StreamParameters::setInputParameters(const DirectionSpecificStreamParameters ¶meters) + { + inputParameters_ = parameters; + } + + void StreamParameters::setOutputParameters(const DirectionSpecificStreamParameters ¶meters) + { + outputParameters_ = parameters; + } + + // ----------------------------------------------------------------------------------- + + bool StreamParameters::isSupported() const + { + return (Pa_IsFormatSupported(inputParameters_.paStreamParameters(), + outputParameters_.paStreamParameters(), sampleRate_) == paFormatIsSupported); + } + + // ----------------------------------------------------------------------------------- + + double StreamParameters::sampleRate() const + { + return sampleRate_; + } + + unsigned long StreamParameters::framesPerBuffer() const + { + return framesPerBuffer_; + } + + ////// + /// Returns all currently set flags as a binary combined + /// integer value (PaStreamFlags). Use isFlagSet() to + /// avoid dealing with the bitmasks. + ////// + PaStreamFlags StreamParameters::flags() const + { + return flags_; + } + + ////// + /// Returns true if the specified flag is currently set + /// or false if it isn't. + ////// + bool StreamParameters::isFlagSet(PaStreamFlags flag) const + { + return ((flags_ & flag) != 0); + } + + // ----------------------------------------------------------------------------------- + + DirectionSpecificStreamParameters &StreamParameters::inputParameters() + { + return inputParameters_; + } + + const DirectionSpecificStreamParameters &StreamParameters::inputParameters() const + { + return inputParameters_; + } + + DirectionSpecificStreamParameters &StreamParameters::outputParameters() + { + return outputParameters_; + } + + const DirectionSpecificStreamParameters &StreamParameters::outputParameters() const + { + return outputParameters_; + } + + // ----------------------------------------------------------------------------------- +} // namespace portaudio + + + + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/System.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/System.cxx new file mode 100644 index 0000000..acb419d --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/System.cxx @@ -0,0 +1,308 @@ +#include "portaudiocpp/System.hxx" + +#include +#include + +#include "portaudiocpp/HostApi.hxx" +#include "portaudiocpp/Device.hxx" +#include "portaudiocpp/Stream.hxx" +#include "portaudiocpp/Exception.hxx" +#include "portaudiocpp/SystemHostApiIterator.hxx" +#include "portaudiocpp/SystemDeviceIterator.hxx" + +namespace portaudio +{ + // ----------------------------------------------------------------------------------- + + // Static members: + System *System::instance_ = NULL; + int System::initCount_ = 0; + HostApi **System::hostApis_ = NULL; + Device **System::devices_ = NULL; + Device *System::nullDevice_ = NULL; + + // ----------------------------------------------------------------------------------- + + int System::version() + { + return Pa_GetVersion(); + } + + const char *System::versionText() + { + return Pa_GetVersionText(); + } + + void System::initialize() + { + ++initCount_; + + if (initCount_ == 1) + { + // Create singleton: + assert(instance_ == NULL); + instance_ = new System(); + + // Initialize the PortAudio system: + { + PaError err = Pa_Initialize(); + + if (err != paNoError) + throw PaException(err); + } + + // Create and populate device array: + { + int numDevices = instance().deviceCount(); + + devices_ = new Device*[numDevices]; + + for (int i = 0; i < numDevices; ++i) + devices_[i] = new Device(i); + } + + // Create and populate host api array: + { + int numHostApis = instance().hostApiCount(); + + hostApis_ = new HostApi*[numHostApis]; + + for (int i = 0; i < numHostApis; ++i) + hostApis_[i] = new HostApi(i); + } + + // Create null device: + nullDevice_ = new Device(paNoDevice); + } + } + + void System::terminate() + { + PaError err = paNoError; + + if (initCount_ == 1) + { + // Destroy null device: + delete nullDevice_; + + // Destroy host api array: + { + if (hostApis_ != NULL) + { + int numHostApis = instance().hostApiCount(); + + for (int i = 0; i < numHostApis; ++i) + delete hostApis_[i]; + + delete[] hostApis_; + hostApis_ = NULL; + } + } + + // Destroy device array: + { + if (devices_ != NULL) + { + int numDevices = instance().deviceCount(); + + for (int i = 0; i < numDevices; ++i) + delete devices_[i]; + + delete[] devices_; + devices_ = NULL; + } + } + + // Terminate the PortAudio system: + assert(instance_ != NULL); + err = Pa_Terminate(); + + // Destroy singleton: + delete instance_; + instance_ = NULL; + } + + if (initCount_ > 0) + --initCount_; + + if (err != paNoError) + throw PaException(err); + } + + + System &System::instance() + { + assert(exists()); + + return *instance_; + } + + bool System::exists() + { + return (instance_ != NULL); + } + + // ----------------------------------------------------------------------------------- + + System::HostApiIterator System::hostApisBegin() + { + System::HostApiIterator tmp; + tmp.ptr_ = &hostApis_[0]; // begin (first element) + return tmp; + } + + System::HostApiIterator System::hostApisEnd() + { + int count = hostApiCount(); + + System::HostApiIterator tmp; + tmp.ptr_ = &hostApis_[count]; // end (one past last element) + return tmp; + } + + HostApi &System::defaultHostApi() + { + PaHostApiIndex defaultHostApi = Pa_GetDefaultHostApi(); + + if (defaultHostApi < 0) + throw PaException(defaultHostApi); + + return *hostApis_[defaultHostApi]; + } + + HostApi &System::hostApiByTypeId(PaHostApiTypeId type) + { + PaHostApiIndex index = Pa_HostApiTypeIdToHostApiIndex(type); + + if (index < 0) + throw PaException(index); + + return *hostApis_[index]; + } + + HostApi &System::hostApiByIndex(PaHostApiIndex index) + { + if (index < 0 || index >= hostApiCount()) + throw PaException(paInternalError); + + return *hostApis_[index]; + } + + int System::hostApiCount() + { + PaHostApiIndex count = Pa_GetHostApiCount(); + + if (count < 0) + throw PaException(count); + + return count; + } + + // ----------------------------------------------------------------------------------- + + System::DeviceIterator System::devicesBegin() + { + DeviceIterator tmp; + tmp.ptr_ = &devices_[0]; + + return tmp; + } + + System::DeviceIterator System::devicesEnd() + { + int count = deviceCount(); + + DeviceIterator tmp; + tmp.ptr_ = &devices_[count]; + + return tmp; + } + + ////// + /// Returns the System's default input Device, or the null Device if none + /// was available. + ////// + Device &System::defaultInputDevice() + { + PaDeviceIndex index = Pa_GetDefaultInputDevice(); + return deviceByIndex(index); + } + + ////// + /// Returns the System's default output Device, or the null Device if none + /// was available. + ////// + Device &System::defaultOutputDevice() + { + PaDeviceIndex index = Pa_GetDefaultOutputDevice(); + return deviceByIndex(index); + } + + ////// + /// Returns the Device for the given index. + /// Will throw a paInternalError equivalent PaException if the given index + /// is out of range. + ////// + Device &System::deviceByIndex(PaDeviceIndex index) + { + if (index < -1 || index >= deviceCount()) + { + throw PaException(paInternalError); + } + + if (index == -1) + return System::instance().nullDevice(); + + return *devices_[index]; + } + + int System::deviceCount() + { + PaDeviceIndex count = Pa_GetDeviceCount(); + + if (count < 0) + throw PaException(count); + + return count; + } + + Device &System::nullDevice() + { + return *nullDevice_; + } + + // ----------------------------------------------------------------------------------- + + void System::sleep(long msec) + { + Pa_Sleep(msec); + } + + int System::sizeOfSample(PaSampleFormat format) + { + PaError err = Pa_GetSampleSize(format); + if (err < 0) + { + throw PaException(err); + return 0; + } + + return err; + } + + // ----------------------------------------------------------------------------------- + + System::System() + { + // (left blank intentionally) + } + + System::~System() + { + // (left blank intentionally) + } + + // ----------------------------------------------------------------------------------- + +} // namespace portaudio + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/SystemDeviceIterator.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/SystemDeviceIterator.cxx new file mode 100644 index 0000000..704d29c --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/SystemDeviceIterator.cxx @@ -0,0 +1,60 @@ +#include "portaudiocpp/SystemDeviceIterator.hxx" + +namespace portaudio +{ + // ----------------------------------------------------------------------------------- + + Device &System::DeviceIterator::operator*() const + { + return **ptr_; + } + + Device *System::DeviceIterator::operator->() const + { + return &**this; + } + + // ----------------------------------------------------------------------------------- + + System::DeviceIterator &System::DeviceIterator::operator++() + { + ++ptr_; + return *this; + } + + System::DeviceIterator System::DeviceIterator::operator++(int) + { + System::DeviceIterator prev = *this; + ++*this; + return prev; + } + + System::DeviceIterator &System::DeviceIterator::operator--() + { + --ptr_; + return *this; + } + + System::DeviceIterator System::DeviceIterator::operator--(int) + { + System::DeviceIterator prev = *this; + --*this; + return prev; + } + + // ----------------------------------------------------------------------------------- + + bool System::DeviceIterator::operator==(const System::DeviceIterator &rhs) + { + return (ptr_ == rhs.ptr_); + } + + bool System::DeviceIterator::operator!=(const System::DeviceIterator &rhs) + { + return !(*this == rhs); + } + + // ----------------------------------------------------------------------------------- +} // namespace portaudio + + diff --git a/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/SystemHostApiIterator.cxx b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/SystemHostApiIterator.cxx new file mode 100644 index 0000000..185b369 --- /dev/null +++ b/tools/tracker/packages/portaudio/bindings/cpp/source/portaudiocpp/SystemHostApiIterator.cxx @@ -0,0 +1,59 @@ +#include "portaudiocpp/SystemHostApiIterator.hxx" + +namespace portaudio +{ + // ----------------------------------------------------------------------------------- + + HostApi &System::HostApiIterator::operator*() const + { + return **ptr_; + } + + HostApi *System::HostApiIterator::operator->() const + { + return &**this; + } + + // ----------------------------------------------------------------------------------- + + System::HostApiIterator &System::HostApiIterator::operator++() + { + ++ptr_; + return *this; + } + + System::HostApiIterator System::HostApiIterator::operator++(int) + { + System::HostApiIterator prev = *this; + ++*this; + return prev; + } + + System::HostApiIterator &System::HostApiIterator::operator--() + { + --ptr_; + return *this; + } + + System::HostApiIterator System::HostApiIterator::operator--(int) + { + System::HostApiIterator prev = *this; + --*this; + return prev; + } + + // ----------------------------------------------------------------------------------- + + bool System::HostApiIterator::operator==(const System::HostApiIterator &rhs) + { + return (ptr_ == rhs.ptr_); + } + + bool System::HostApiIterator::operator!=(const System::HostApiIterator &rhs) + { + return !(*this == rhs); + } + + // ----------------------------------------------------------------------------------- +} // namespace portaudio + diff --git a/tools/tracker/packages/portaudio/build/dev-cpp/Makefile-dll b/tools/tracker/packages/portaudio/build/dev-cpp/Makefile-dll new file mode 100644 index 0000000..856af63 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/dev-cpp/Makefile-dll @@ -0,0 +1,78 @@ +# Project: portaudio-dll +# Makefile created by Dev-C++ 4.9.8.2 + +CPP = g++.exe +CC = gcc.exe +WINDRES = windres.exe +RES = +OBJ = ./pa_skeleton.o ./pa_stream.o ./pa_trace.o ./pa_allocation.o ./pa_converters.o ./pa_cpuload.o ./pa_dither.o ./pa_front.o ./pa_process.o ./pa_asio.o ./pa_win_util.o ./pa_win_hostapis.o ./pa_win_ds.o ./dsound_wrapper.o ./pa_win_wmme.o ./iasiothiscallresolver.o $(RES) +LINKOBJ = ./pa_skeleton.o ./pa_stream.o ./pa_trace.o ./pa_allocation.o ./pa_converters.o ./pa_cpuload.o ./pa_dither.o ./pa_front.o ./pa_process.o ./pa_asio.o ./pa_win_util.o ./pa_win_hostapis.o ./pa_win_ds.o ./dsound_wrapper.o ./pa_win_wmme.o ./iasiothiscallresolver.o $(RES) +LIBS = -L"C:/Dev-CPP/lib" -fmessage-length=0 --no-export-all-symbols --add-stdcall-alias ../../../asiosdk2/asiosdk2.a -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -lwinmm -O3 -s +INCS = -I"C:/Dev-CPP/include" -I"../../../asiosdk2" -I"../../../asiosdk2/common" -I"../../../asiosdk2/host" -I"../../../asiosdk2/host/pc" -I"../../pa_common" +CXXINCS = -I"C:/Dev-CPP/include/c++" -I"C:/Dev-CPP/include/c++/mingw32" -I"C:/Dev-CPP/include/c++/backward" -I"C:/Dev-CPP/include" -I"../../../asiosdk2" -I"../../../asiosdk2/common" -I"../../../asiosdk2/host" -I"../../../asiosdk2/host/pc" -I"../../pa_common" +BIN = portaudio-dll.dll +CXXFLAGS = $(CXXINCS)-O3 -fmessage-length=0 -Wall +CFLAGS = $(INCS)-DBUILDING_DLL=1 -O3 -fmessage-length=0 -Wall + +.PHONY: all all-before all-after clean clean-custom + +all: all-before portaudio-dll.dll all-after + + +clean: clean-custom + rm -f $(OBJ) $(BIN) + +DLLWRAP=dllwrap.exe +DEFFILE=libportaudio-dll.def +STATICLIB=libportaudio-dll.a + +$(BIN): $(LINKOBJ) + $(DLLWRAP) --output-def $(DEFFILE) --driver-name c++ --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN) + +./pa_skeleton.o: ../../pa_common/pa_skeleton.c + $(CPP) -c ../../pa_common/pa_skeleton.c -o ./pa_skeleton.o $(CXXFLAGS) + +./pa_stream.o: ../../pa_common/pa_stream.c + $(CPP) -c ../../pa_common/pa_stream.c -o ./pa_stream.o $(CXXFLAGS) + +./pa_trace.o: ../../pa_common/pa_trace.c + $(CPP) -c ../../pa_common/pa_trace.c -o ./pa_trace.o $(CXXFLAGS) + +./pa_allocation.o: ../../pa_common/pa_allocation.c + $(CPP) -c ../../pa_common/pa_allocation.c -o ./pa_allocation.o $(CXXFLAGS) + +./pa_converters.o: ../../pa_common/pa_converters.c + $(CPP) -c ../../pa_common/pa_converters.c -o ./pa_converters.o $(CXXFLAGS) + +./pa_cpuload.o: ../../pa_common/pa_cpuload.c + $(CPP) -c ../../pa_common/pa_cpuload.c -o ./pa_cpuload.o $(CXXFLAGS) + +./pa_dither.o: ../../pa_common/pa_dither.c + $(CPP) -c ../../pa_common/pa_dither.c -o ./pa_dither.o $(CXXFLAGS) + +./pa_front.o: ../../pa_common/pa_front.c + $(CPP) -c ../../pa_common/pa_front.c -o ./pa_front.o $(CXXFLAGS) + +./pa_process.o: ../../pa_common/pa_process.c + $(CPP) -c ../../pa_common/pa_process.c -o ./pa_process.o $(CXXFLAGS) + +./pa_asio.o: ../../pa_asio/pa_asio.cpp + $(CPP) -c ../../pa_asio/pa_asio.cpp -o ./pa_asio.o $(CXXFLAGS) + +./pa_win_util.o: ../pa_win_util.c + $(CPP) -c ../pa_win_util.c -o ./pa_win_util.o $(CXXFLAGS) + +./pa_win_hostapis.o: ../pa_win_hostapis.c + $(CPP) -c ../pa_win_hostapis.c -o ./pa_win_hostapis.o $(CXXFLAGS) + +./pa_win_ds.o: ../../pa_win_ds/pa_win_ds.c + $(CPP) -c ../../pa_win_ds/pa_win_ds.c -o ./pa_win_ds.o $(CXXFLAGS) + +./dsound_wrapper.o: ../../pa_win_ds/dsound_wrapper.c + $(CPP) -c ../../pa_win_ds/dsound_wrapper.c -o ./dsound_wrapper.o $(CXXFLAGS) + +./pa_win_wmme.o: ../../pa_win_wmme/pa_win_wmme.c + $(CPP) -c ../../pa_win_wmme/pa_win_wmme.c -o ./pa_win_wmme.o $(CXXFLAGS) + +./iasiothiscallresolver.o: ../../pa_asio/iasiothiscallresolver.cpp + $(CPP) -c ../../pa_asio/iasiothiscallresolver.cpp -o ./iasiothiscallresolver.o $(CXXFLAGS) diff --git a/tools/tracker/packages/portaudio/build/dev-cpp/Makefile-static b/tools/tracker/packages/portaudio/build/dev-cpp/Makefile-static new file mode 100644 index 0000000..2a1647d --- /dev/null +++ b/tools/tracker/packages/portaudio/build/dev-cpp/Makefile-static @@ -0,0 +1,75 @@ +# Project: portaudio-static +# Makefile created by Dev-C++ 4.9.8.2 + +CPP = g++.exe +CC = gcc.exe +WINDRES = windres.exe +RES = +OBJ = ./pa_skeleton.o ./pa_stream.o ./pa_trace.o ./pa_allocation.o ./pa_converters.o ./pa_cpuload.o ./pa_dither.o ./pa_front.o ./pa_process.o ./pa_asio.o ./pa_win_util.o ./pa_win_hostapis.o ./pa_win_ds.o ./dsound_wrapper.o ./pa_win_wmme.o ./iasiothiscallresolver.o $(RES) +LINKOBJ = ./pa_skeleton.o ./pa_stream.o ./pa_trace.o ./pa_allocation.o ./pa_converters.o ./pa_cpuload.o ./pa_dither.o ./pa_front.o ./pa_process.o ./pa_asio.o ./pa_win_util.o ./pa_win_hostapis.o ./pa_win_ds.o ./dsound_wrapper.o ./pa_win_wmme.o ./iasiothiscallresolver.o $(RES) +LIBS = -L"C:/Dev-CPP/lib" -fmessage-length=0 -O3 -s +INCS = -I"C:/Dev-CPP/include" -I"../../../asiosdk2" -I"../../../asiosdk2/common" -I"../../../asiosdk2/host" -I"../../../asiosdk2/host/pc" -I"../../pa_common" +CXXINCS = -I"C:/Dev-CPP/include/c++" -I"C:/Dev-CPP/include/c++/mingw32" -I"C:/Dev-CPP/include/c++/backward" -I"C:/Dev-CPP/include" -I"../../../asiosdk2" -I"../../../asiosdk2/common" -I"../../../asiosdk2/host" -I"../../../asiosdk2/host/pc" -I"../../pa_common" +BIN = portaudio-static.a +CXXFLAGS = $(CXXINCS)-O3 -fmessage-length=0 -Wall +CFLAGS = $(INCS)-O3 -fmessage-length=0 -Wall + +.PHONY: all all-before all-after clean clean-custom + +all: all-before portaudio-static.a all-after + + +clean: clean-custom + rm -f $(OBJ) $(BIN) + +$(BIN): $(LINKOBJ) + ar r $(BIN) $(LINKOBJ) + ranlib $(BIN) + +./pa_skeleton.o: ../../pa_common/pa_skeleton.c + $(CPP) -c ../../pa_common/pa_skeleton.c -o ./pa_skeleton.o $(CXXFLAGS) + +./pa_stream.o: ../../pa_common/pa_stream.c + $(CPP) -c ../../pa_common/pa_stream.c -o ./pa_stream.o $(CXXFLAGS) + +./pa_trace.o: ../../pa_common/pa_trace.c + $(CPP) -c ../../pa_common/pa_trace.c -o ./pa_trace.o $(CXXFLAGS) + +./pa_allocation.o: ../../pa_common/pa_allocation.c + $(CPP) -c ../../pa_common/pa_allocation.c -o ./pa_allocation.o $(CXXFLAGS) + +./pa_converters.o: ../../pa_common/pa_converters.c + $(CPP) -c ../../pa_common/pa_converters.c -o ./pa_converters.o $(CXXFLAGS) + +./pa_cpuload.o: ../../pa_common/pa_cpuload.c + $(CPP) -c ../../pa_common/pa_cpuload.c -o ./pa_cpuload.o $(CXXFLAGS) + +./pa_dither.o: ../../pa_common/pa_dither.c + $(CPP) -c ../../pa_common/pa_dither.c -o ./pa_dither.o $(CXXFLAGS) + +./pa_front.o: ../../pa_common/pa_front.c + $(CPP) -c ../../pa_common/pa_front.c -o ./pa_front.o $(CXXFLAGS) + +./pa_process.o: ../../pa_common/pa_process.c + $(CPP) -c ../../pa_common/pa_process.c -o ./pa_process.o $(CXXFLAGS) + +./pa_asio.o: ../../pa_asio/pa_asio.cpp + $(CPP) -c ../../pa_asio/pa_asio.cpp -o ./pa_asio.o $(CXXFLAGS) + +./pa_win_util.o: ../pa_win_util.c + $(CPP) -c ../pa_win_util.c -o ./pa_win_util.o $(CXXFLAGS) + +./pa_win_hostapis.o: ../pa_win_hostapis.c + $(CPP) -c ../pa_win_hostapis.c -o ./pa_win_hostapis.o $(CXXFLAGS) + +./pa_win_ds.o: ../../pa_win_ds/pa_win_ds.c + $(CPP) -c ../../pa_win_ds/pa_win_ds.c -o ./pa_win_ds.o $(CXXFLAGS) + +./dsound_wrapper.o: ../../pa_win_ds/dsound_wrapper.c + $(CPP) -c ../../pa_win_ds/dsound_wrapper.c -o ./dsound_wrapper.o $(CXXFLAGS) + +./pa_win_wmme.o: ../../pa_win_wmme/pa_win_wmme.c + $(CPP) -c ../../pa_win_wmme/pa_win_wmme.c -o ./pa_win_wmme.o $(CXXFLAGS) + +./iasiothiscallresolver.o: ../../pa_asio/iasiothiscallresolver.cpp + $(CPP) -c ../../pa_asio/iasiothiscallresolver.cpp -o ./iasiothiscallresolver.o $(CXXFLAGS) diff --git a/tools/tracker/packages/portaudio/build/dev-cpp/portaudio-dll.dev b/tools/tracker/packages/portaudio/build/dev-cpp/portaudio-dll.dev new file mode 100644 index 0000000..086e109 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/dev-cpp/portaudio-dll.dev @@ -0,0 +1,209 @@ +[Project] +FileName=portaudio-dll.dev +Name=portaudio-dll +UnitCount=16 +Type=3 +Ver=1 +ObjFiles= +Includes=..\..\..\asiosdk2;..\..\..\asiosdk2\common;..\..\..\asiosdk2\host;..\..\..\asiosdk2\host\pc;..\..\pa_common +Libs= +PrivateResource= +ResourceIncludes= +MakeIncludes= +Compiler=-DBUILDING_DLL=1_@@_-O3_@@_ +CppCompiler=-O3_@@_ +Linker=--no-export-all-symbols --add-stdcall-alias_@@_../../../asiosdk2/asiosdk2.a_@@_-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -lwinmm_@@_-O3 -s_@@_ +IsCpp=1 +Icon= +ExeOutput=. +ObjectOutput=. +OverrideOutput=0 +OverrideOutputName=portaudio.a +HostApplication= +Folders= +CommandLine= +IncludeVersionInfo=0 +SupportXPThemes=0 +CompilerSet=0 +CompilerSettings=0000000000000000000 +UseCustomMakefile=0 +CustomMakefile= + +[Unit1] +FileName=..\..\pa_common\pa_skeleton.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_skeleton.c -o ./pa_skeleton.o $(CFLAGS) + +[Unit2] +FileName=..\..\pa_common\pa_stream.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_stream.c -o ./pa_stream.o $(CFLAGS) + +[Unit3] +FileName=..\..\pa_common\pa_trace.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_trace.c -o ./pa_trace.o $(CFLAGS) + +[Unit4] +FileName=..\..\pa_common\pa_allocation.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_allocation.c -o ./pa_allocation.o $(CFLAGS) + +[Unit5] +FileName=..\..\pa_common\pa_converters.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_converters.c -o ./pa_converters.o $(CFLAGS) + +[Unit6] +FileName=..\..\pa_common\pa_cpuload.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_cpuload.c -o ./pa_cpuload.o $(CFLAGS) + +[Unit7] +FileName=..\..\pa_common\pa_dither.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_dither.c -o ./pa_dither.o $(CFLAGS) + +[Unit8] +FileName=..\..\pa_common\pa_front.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_front.c -o ./pa_front.o $(CFLAGS) + +[Unit9] +FileName=..\..\pa_common\pa_process.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_process.c -o ./pa_process.o $(CFLAGS) + +[VersionInfo] +Major=0 +Minor=1 +Release=1 +Build=1 +LanguageID=1033 +CharsetID=1252 +CompanyName= +FileVersion= +FileDescription=Developed using the Dev-C++ IDE +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion= +AutoIncBuildNr=0 + +[Unit10] +FileName=..\..\pa_asio\pa_asio.cpp +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CPP) -c pa_asio.cpp -o ./pa_asio.o $(CXXFLAGS) + +[Unit11] +FileName=..\pa_win_util.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_win_util.c -o ./pa_win_util.o $(CFLAGS) + +[Unit12] +FileName=..\pa_win_hostapis.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_win_hostapis.c -o ./pa_win_hostapis.o $(CFLAGS) + +[Unit13] +FileName=..\..\pa_win_ds\pa_win_ds.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_win_ds.c -o ./pa_win_ds.o $(CFLAGS) + +[Unit14] +FileName=..\..\pa_win_ds\dsound_wrapper.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c dsound_wrapper.c -o ./dsound_wrapper.o $(CFLAGS) + +[Unit15] +FileName=..\..\pa_win_wmme\pa_win_wmme.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_win_wmme.c -o ./pa_win_wmme.o $(CFLAGS) + +[Unit16] +FileName=..\..\pa_asio\iasiothiscallresolver.cpp +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + diff --git a/tools/tracker/packages/portaudio/build/dev-cpp/portaudio-static.dev b/tools/tracker/packages/portaudio/build/dev-cpp/portaudio-static.dev new file mode 100644 index 0000000..2aae584 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/dev-cpp/portaudio-static.dev @@ -0,0 +1,209 @@ +[Project] +FileName=portaudio-static.dev +Name=portaudio-static +UnitCount=16 +Type=2 +Ver=1 +ObjFiles= +Includes=..\..\..\asiosdk2;..\..\..\asiosdk2\common;..\..\..\asiosdk2\host;..\..\..\asiosdk2\host\pc;..\..\pa_common +Libs= +PrivateResource= +ResourceIncludes= +MakeIncludes= +Compiler=-O3_@@_ +CppCompiler=-O3_@@_ +Linker=-O3 -s_@@_ +IsCpp=1 +Icon= +ExeOutput=. +ObjectOutput=. +OverrideOutput=0 +OverrideOutputName=portaudio.a +HostApplication= +Folders= +CommandLine= +IncludeVersionInfo=0 +SupportXPThemes=0 +CompilerSet=0 +CompilerSettings=0000000000000000000 +UseCustomMakefile=0 +CustomMakefile= + +[Unit1] +FileName=..\..\pa_common\pa_skeleton.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_skeleton.c -o ./pa_skeleton.o $(CFLAGS) + +[Unit2] +FileName=..\..\pa_common\pa_stream.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_stream.c -o ./pa_stream.o $(CFLAGS) + +[Unit3] +FileName=..\..\pa_common\pa_trace.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_trace.c -o ./pa_trace.o $(CFLAGS) + +[Unit4] +FileName=..\..\pa_common\pa_allocation.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_allocation.c -o ./pa_allocation.o $(CFLAGS) + +[Unit5] +FileName=..\..\pa_common\pa_converters.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_converters.c -o ./pa_converters.o $(CFLAGS) + +[Unit6] +FileName=..\..\pa_common\pa_cpuload.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_cpuload.c -o ./pa_cpuload.o $(CFLAGS) + +[Unit7] +FileName=..\..\pa_common\pa_dither.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_dither.c -o ./pa_dither.o $(CFLAGS) + +[Unit8] +FileName=..\..\pa_common\pa_front.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_front.c -o ./pa_front.o $(CFLAGS) + +[Unit9] +FileName=..\..\pa_common\pa_process.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_process.c -o ./pa_process.o $(CFLAGS) + +[VersionInfo] +Major=0 +Minor=1 +Release=1 +Build=1 +LanguageID=1033 +CharsetID=1252 +CompanyName= +FileVersion= +FileDescription=Developed using the Dev-C++ IDE +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion= +AutoIncBuildNr=0 + +[Unit10] +FileName=..\..\pa_asio\pa_asio.cpp +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CPP) -c pa_asio.cpp -o ./pa_asio.o $(CXXFLAGS) + +[Unit11] +FileName=..\..\pa_win\pa_win_util.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_win_util.c -o ./pa_win_util.o $(CFLAGS) + +[Unit12] +FileName=..\..\pa_win\pa_win_hostapis.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_win_hostapis.c -o ./pa_win_hostapis.o $(CFLAGS) + +[Unit13] +FileName=..\..\pa_win_ds\pa_win_ds.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_win_ds.c -o ./pa_win_ds.o $(CFLAGS) + +[Unit14] +FileName=..\..\pa_win_ds\dsound_wrapper.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c dsound_wrapper.c -o ./dsound_wrapper.o $(CFLAGS) + +[Unit15] +FileName=..\..\pa_win_wmme\pa_win_wmme.c +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c pa_win_wmme.c -o ./pa_win_wmme.o $(CFLAGS) + +[Unit16] +FileName=..\..\pa_asio\iasiothiscallresolver.cpp +CompileCpp=1 +Folder=portaudio +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + diff --git a/tools/tracker/packages/portaudio/build/dev-cpp/readme.txt b/tools/tracker/packages/portaudio/build/dev-cpp/readme.txt new file mode 100644 index 0000000..07108a7 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/dev-cpp/readme.txt @@ -0,0 +1,23 @@ +From: "Peter L Jones" +Sent: Wednesday, September 17, 2003 5:18 AM +Subject: Dev-C++ project files + +I attach two project files intended for portaudio/pa_win/dev-cpp (i.e. in +parallel with the msvc directory), if you want them. One is for a static +library build and one for a DLL. I've used the static library (in building +a single monolithic DLL) but I can't guarantee the DLL version will build a +working library (I think it's mostly there, though!). + +I also attach the resulting makefiles, which may be of use to other MinGW +users. + +They're rooted in the directory given above and drop their object and +library files in the same place. They assume the asiosdk2 files are in the +same directory as portaudio/ in a sub-directory called asiosdk2/. Oh! The +DLL is built against a static asiosdk2.a library... maybe not the best way +to do it... I ought to figure out how to link against a "home made" dll in +Dev-C++, I guess ;-) + +Cheers, + +-- Peter diff --git a/tools/tracker/packages/portaudio/build/msvc/portaudio.def b/tools/tracker/packages/portaudio/build/msvc/portaudio.def new file mode 100644 index 0000000..08929d6 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/msvc/portaudio.def @@ -0,0 +1,43 @@ +EXPORTS + +; +Pa_GetVersion @1 +Pa_GetVersionText @2 +Pa_GetErrorText @3 +Pa_Initialize @4 +Pa_Terminate @5 +Pa_GetHostApiCount @6 +Pa_GetDefaultHostApi @7 +Pa_GetHostApiInfo @8 +Pa_HostApiTypeIdToHostApiIndex @9 +Pa_HostApiDeviceIndexToDeviceIndex @10 +Pa_GetLastHostErrorInfo @11 +Pa_GetDeviceCount @12 +Pa_GetDefaultInputDevice @13 +Pa_GetDefaultOutputDevice @14 +Pa_GetDeviceInfo @15 +Pa_IsFormatSupported @16 +Pa_OpenStream @17 +Pa_OpenDefaultStream @18 +Pa_CloseStream @19 +Pa_SetStreamFinishedCallback @20 +Pa_StartStream @21 +Pa_StopStream @22 +Pa_AbortStream @23 +Pa_IsStreamStopped @24 +Pa_IsStreamActive @25 +Pa_GetStreamInfo @26 +Pa_GetStreamTime @27 +Pa_GetStreamCpuLoad @28 +Pa_ReadStream @29 +Pa_WriteStream @30 +Pa_GetStreamReadAvailable @31 +Pa_GetStreamWriteAvailable @32 +Pa_GetSampleSize @33 +Pa_Sleep @34 +PaAsio_GetAvailableLatencyValues @50 +PaAsio_ShowControlPanel @51 +PaUtil_InitializeX86PlainConverters @52 +PaAsio_GetInputChannelName @53 +PaAsio_GetOutputChannelName @54 +PaUtil_SetDebugPrintFunction @55 \ No newline at end of file diff --git a/tools/tracker/packages/portaudio/build/msvc/portaudio.dsp b/tools/tracker/packages/portaudio/build/msvc/portaudio.dsp new file mode 100644 index 0000000..3ccdbfb --- /dev/null +++ b/tools/tracker/packages/portaudio/build/msvc/portaudio.dsp @@ -0,0 +1,265 @@ +# Microsoft Developer Studio Project File - Name="portaudio" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=portaudio - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "portaudio.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "portaudio.mak" CFG="portaudio - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "portaudio - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "portaudio - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "portaudio - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release_x86" +# PROP BASE Intermediate_Dir "Release_x86" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release_x86" +# PROP Intermediate_Dir "Release_x86" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\src\common" /I "..\..\include" /I ".\\" /I "..\..\src\os\win" /D "WIN32" /D "NDEBUG" /D "_USRDLL" /D "PA_ENABLE_DEBUG_OUTPUT" /D "_CRT_SECURE_NO_DEPRECATE" /D "PAWIN_USE_WDMKS_DEVICE_INFO" /FD /c +# SUBTRACT CPP /YX /Yc /Yu +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setupapi.lib /nologo /dll /machine:I386 /out:"./Release_x86/portaudio_x86.dll" + +!ELSEIF "$(CFG)" == "portaudio - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug_x86" +# PROP BASE Intermediate_Dir "Debug_x86" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug_x86" +# PROP Intermediate_Dir "Debug_x86" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\src\common" /I "..\..\include" /I ".\\" /I "..\..\src\os\win" /D "WIN32" /D "_DEBUG" /D "_USRDLL" /D "PA_ENABLE_DEBUG_OUTPUT" /D "_CRT_SECURE_NO_DEPRECATE" /D "PAWIN_USE_WDMKS_DEVICE_INFO" /FD /GZ /c +# SUBTRACT CPP /YX /Yc /Yu +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setupapi.lib /nologo /dll /debug /machine:I386 /out:"./Debug_x86/portaudio_x86.dll" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "portaudio - Win32 Release" +# Name "portaudio - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Group "common" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\common\pa_allocation.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\pa_converters.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\pa_cpuload.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\pa_debugprint.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\pa_dither.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\pa_front.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\pa_process.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\pa_skeleton.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\pa_stream.c +# End Source File +# End Group +# Begin Group "hostapi" + +# PROP Default_Filter "" +# Begin Group "ASIO" + +# PROP Default_Filter "" +# Begin Group "ASIOSDK" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\hostapi\asio\ASIOSDK\common\asio.cpp +# ADD CPP /I "..\..\src\hostapi\asio\ASIOSDK\host" /I "..\..\src\hostapi\asio\ASIOSDK\host\pc" /I "..\..\src\hostapi\asio\ASIOSDK\common" +# End Source File +# Begin Source File + +SOURCE=..\..\src\hostapi\asio\ASIOSDK\host\ASIOConvertSamples.cpp +# ADD CPP /I "..\..\src\hostapi\asio\ASIOSDK\host" /I "..\..\src\hostapi\asio\ASIOSDK\host\pc" /I "..\..\src\hostapi\asio\ASIOSDK\common" +# End Source File +# Begin Source File + +SOURCE=..\..\src\hostapi\asio\ASIOSDK\host\asiodrivers.cpp +# ADD CPP /I "..\..\src\hostapi\asio\ASIOSDK\host" /I "..\..\src\hostapi\asio\ASIOSDK\host\pc" /I "..\..\src\hostapi\asio\ASIOSDK\common" +# End Source File +# Begin Source File + +SOURCE=..\..\src\hostapi\asio\ASIOSDK\host\pc\asiolist.cpp +# ADD CPP /I "..\..\src\hostapi\asio\ASIOSDK\host" /I "..\..\src\hostapi\asio\ASIOSDK\host\pc" /I "..\..\src\hostapi\asio\ASIOSDK\common" +# End Source File +# Begin Source File + +SOURCE=..\..\src\hostapi\asio\ASIOSDK\common\combase.cpp +# ADD CPP /I "..\..\src\hostapi\asio\ASIOSDK\host" /I "..\..\src\hostapi\asio\ASIOSDK\host\pc" /I "..\..\src\hostapi\asio\ASIOSDK\common" +# End Source File +# Begin Source File + +SOURCE=..\..\src\hostapi\asio\ASIOSDK\common\debugmessage.cpp +# ADD CPP /I "..\..\src\hostapi\asio\ASIOSDK\host" /I "..\..\src\hostapi\asio\ASIOSDK\host\pc" /I "..\..\src\hostapi\asio\ASIOSDK\common" +# End Source File +# Begin Source File + +SOURCE=..\..\src\hostapi\asio\ASIOSDK\common\register.cpp +# ADD CPP /I "..\..\src\hostapi\asio\ASIOSDK\host" /I "..\..\src\hostapi\asio\ASIOSDK\host\pc" /I "..\..\src\hostapi\asio\ASIOSDK\common" +# End Source File +# End Group +# Begin Source File + +SOURCE=..\..\src\hostapi\asio\pa_asio.cpp +# ADD CPP /I "..\..\src\hostapi\asio\ASIOSDK\host" /I "..\..\src\hostapi\asio\ASIOSDK\host\pc" /I "..\..\src\hostapi\asio\ASIOSDK\common" +# End Source File +# End Group +# Begin Group "dsound" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\hostapi\dsound\pa_win_ds.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\hostapi\dsound\pa_win_ds_dynlink.c +# End Source File +# End Group +# Begin Group "wmme" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\hostapi\wmme\pa_win_wmme.c +# End Source File +# End Group +# Begin Group "wasapi" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\hostapi\wasapi\pa_win_wasapi.cpp +# End Source File +# End Group +# Begin Group "wdm-ks" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\hostapi\wdmks\pa_win_wdmks.c +# End Source File +# End Group +# End Group +# Begin Group "os" + +# PROP Default_Filter "" +# Begin Group "win" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\..\src\os\win\pa_win_hostapis.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\os\win\pa_win_util.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\os\win\pa_win_waveformat.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\os\win\pa_win_wdmks_utils.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\os\win\pa_x86_plain_converters.c +# End Source File +# End Group +# End Group +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\portaudio.def +# End Source File +# End Group +# End Target +# End Project diff --git a/tools/tracker/packages/portaudio/build/msvc/portaudio.dsw b/tools/tracker/packages/portaudio/build/msvc/portaudio.dsw new file mode 100644 index 0000000..58d0ea9 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/msvc/portaudio.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "portaudio"=".\portaudio.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/tools/tracker/packages/portaudio/build/msvc/portaudio.sln b/tools/tracker/packages/portaudio/build/msvc/portaudio.sln new file mode 100644 index 0000000..25a8721 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/msvc/portaudio.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "portaudio.vcproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release|x64 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tools/tracker/packages/portaudio/build/msvc/portaudio.vcproj b/tools/tracker/packages/portaudio/build/msvc/portaudio.vcproj new file mode 100644 index 0000000..492d97d --- /dev/null +++ b/tools/tracker/packages/portaudio/build/msvc/portaudio.vcproj @@ -0,0 +1,1471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/tracker/packages/portaudio/build/msvc/readme.txt b/tools/tracker/packages/portaudio/build/msvc/readme.txt new file mode 100644 index 0000000..5364797 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/msvc/readme.txt @@ -0,0 +1,80 @@ +Hello + + This is a small list of steps in order to build portaudio +(Currently v19-devel) into a VC6 DLL and lib file. +This DLL contains all 3 current win32 PA APIS (MM/DS/ASIO) + +1)Copy the source dirs that comes with the ASIO SDK inside src\hostapi\asio\ASIOSDK + so you should now have example: + + portaudio19svn\src\hostapi\asio\ASIOSDK\common + portaudio19svn\src\hostapi\asio\ASIOSDK\host + portaudio19svn\src\hostapi\asio\ASIOSDK\host\sample + portaudio19svn\src\hostapi\asio\ASIOSDK\host\pc + portaudio19svn\src\hostapi\asio\ASIOSDK\host\mac (not needed) + + You dont need "driver" + +2) + *If you have Visual Studio 6.0*, please make sure you have it updated with the latest (and final) + microsoft libraries for it, namely: + + Service pack 5: + Latest known URL: + http://msdn2.microsoft.com/en-us/vstudio/aa718363.aspx + Yes there EXISTS a service pack 6 , but the processor pack (below) isnt compatible with it. + + Processor Pack(only works with above SP5) + Latest known URL: + http://msdn2.microsoft.com/en-us/vstudio/Aa718349.aspx + This isnt absolutely required for portaudio, but if you plan on using SSE intrinsics and similar things. + Up to you to decide upon Service pack 5 or 6 depending on your need for intrinsics. + + Platform SDK (Feb 2003) : + Latest known URL: + http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm + (This will allow your code base to be x64 friendly, with correct defines + for LONG_PTR and such) + NOTE A) Yes you have to use IE activex scripts to install that - wont work in Firefox, you + may have to temporarily change tyour default browser(aint life unfair) + NOTE B) Dont forget to hit "Register PSDK Directories with Visual Studio". + you can make sure its right in VC6 if you open tools/options/directories/include files and you see SDK 2003 as the FIRST entry + (it must be the same for libs) + + DirectX 9.0 SDK Update - (Summer 2003) + Latest known URL: + http://www.microsoft.com/downloads/details.aspx?familyid=9216652f-51e0-402e-b7b5-feb68d00f298&displaylang=en + Again register the links in VC6, and check inside vc6 if headers are in second place right after SDk 2003 + + *If you have 7.0(VC.NET/2001) or 7.1(VC.2003) * + then I suggest you open portaudio.dsp (and convert if needed) + + *If you have Visual Studio 2005*, I suggest you open the portaudio.sln file + which contains 4 configurations. Win32/x64 in both Release and Debug variants + + hit compile and hope for the best. + +3)Now in any project, in which you require portaudio, + you can just link with portaudio_x86.lib, (or _x64) and of course include the + relevant headers + (portaudio.h, and/or pa_asio.h , pa_x86_plain_converters.h) See (*) + +4) Your new exe should now use portaudio_xXX.dll. + + +Have fun! + +(*): you may want to add/remove some DLL entry points. +Right now those 6 entries are _not_ from portaudio.h + +(from portaudio.def) +(...) +PaAsio_GetAvailableLatencyValues @50 +PaAsio_ShowControlPanel @51 +PaUtil_InitializeX86PlainConverters @52 +PaAsio_GetInputChannelName @53 +PaAsio_GetOutputChannelName @54 +PaUtil_SetLogPrintFunction @55 + +----- +David Viens, davidv@plogue.com \ No newline at end of file diff --git a/tools/tracker/packages/portaudio/build/scons/SConscript_common b/tools/tracker/packages/portaudio/build/scons/SConscript_common new file mode 100644 index 0000000..e5d1647 --- /dev/null +++ b/tools/tracker/packages/portaudio/build/scons/SConscript_common @@ -0,0 +1,28 @@ +import os.path, sys + +class ConfigurationError(Exception): + def __init__(self, reason): + Exception.__init__(self, "Configuration failed: %s" % reason) + +env = Environment() + +# sunos, aix, hpux, irix, sunos appear to be platforms known by SCons, assuming they're POSIX compliant +Posix = ("linux", "darwin", "sunos", "aix", "hpux", "irix", "sunos") +Windows = ("win32", "cygwin") + +if env["PLATFORM"] == "posix": + if sys.platform[:5] == "linux": + Platform = "linux" + else: + raise ConfigurationError("Unknown platform %s" % sys.platform) +else: + if not env["PLATFORM"] in ("win32", "cygwin") + Posix: + raise ConfigurationError("Unknown platform %s" % env["PLATFORM"]) + Platform = env["PLATFORM"] + +# Inspired by the versioning scheme followed by Qt, it seems sensible enough. There are three components: major, minor +# and micro. Major changes with each subtraction from the API (backward-incompatible, i.e. V19 vs. V18), minor changes +# with each addition to the API (backward-compatible), micro changes with each revision of the source code. +ApiVer = "2.0.0" + +Export("Platform", "Posix", "ConfigurationError", "ApiVer") diff --git a/tools/tracker/packages/portaudio/build/scons/SConscript_opts b/tools/tracker/packages/portaudio/build/scons/SConscript_opts new file mode 100644 index 0000000..7c9204c --- /dev/null +++ b/tools/tracker/packages/portaudio/build/scons/SConscript_opts @@ -0,0 +1,92 @@ +import os.path, sys + +def _PackageOption(pkgName, default=1): + """ Allow user to choose whether a package should be used if available. This results in a commandline option use, + where Pkgname is the name of the package with a capitalized first letter. + @param pkgName: Name of package. + @param default: The default value for this option ("yes"/"no"). + """ + return BoolOption("use%s" % pkgName[0].upper() + pkgName[1:], "use %s if available" % (pkgName), default) + +def _BoolOption(opt, explanation, default=1): + """ Allow user to enable/disable a certain option. This results in a commandline option enable